簡體   English   中英

在matlab中使用向量作為多個輸入函數的輸入

[英]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時希望x1x2作為數組傳遞。

F = matlabFunction(f, 'Vars', {[x1, x2]});
F([1 1]);

暫無
暫無

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

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