[英]Using a vector as an input for a function of multiple inputs in matlab
我想在一個接受m個輸入的函數中使用維度[m; 1]的向量輸入。 例如:
syms x1 x2;
f = x1^2 + x2^2;
F = matlabFunction(f);
x = [1;1];
F(x);
上面的代碼不起作用,因為F是2個輸入的函數,它只將向量x看作單個輸入。 我知道我可以說F(x(1),x(2))並且上面的方法可以工作但是我希望它能用於m個變量的函數和m長度的向量。
所有幫助表示贊賞。 謝謝。
您需要先將x
轉換為單元格,然后使用{:}
傳遞它。
xcell = num2cell(x);
F(xcell{:});
或者,您可以指定在使用Vars
參數調用matlabFunction
時希望x1
和x2
作為數組傳遞。
F = matlabFunction(f, 'Vars', {[x1, x2]});
F([1 1]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.