簡體   English   中英

如何在 Matlab 中將變量的矩陣和列向量相乘?

[英]How do I multiply a matrix and a column vector of variables in Matlab?

我有一個矩陣“F”(3 * 20 雙)和一個單元格類型“ans”(20*1),由 (1,x,y,z,xy,yx,...) 形式的變量組成。 我想將 F 和 ans 相乘以獲得方程組並使用它來獲得函數

f = @(t,y) F * ans

稍后我將使用它來解決 ODE。 這給了我錯誤

Operator '*' is not supported for operands of type 'cell'.

現在,我無法將 celltype 轉換為 double 類型。 如果我寫

var = str2double(ans)

那么 var 只是由 NaN 而不是變量組成。 有人可以幫忙嗎?

  1. 不要使用ans作為變量名。 如果未指定其他變量,則它是默認輸出變量。 這幾乎肯定會產生問題。 將其另存為其他內容。
  2. cell不是字符串。 單元是“容器”,可以存儲您想要的任何信息、數字、字符串、結構、單元甚至函數句柄。

如果您的單元格包含數值,則必須將其轉換為數值矩陣。 有很多方法可以做到這一點,但最直觀的方法是簡單地使用cell2mat

這僅在您的每個單元格包含相同數量的列並且所有單元格僅包含數字數據時才有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM