我有什么:
syms X Y
funcF = [ (X.^2 + Y.^2 + X -4), (Y*cos(X) + X*Y.^3 - 1) ]
z0 = [0.5, 2]
说我想将z0
传递给funcF
,我不知道该怎么做。 (我对matlab的了解不是最好的)
所以我现在正在尝试:
funcF = funcF(z0)
基本上,我希望它能打印出这样的东西:
[#1 #2]
答案 0 :(得分:2)
因为该表达式是符号,所以您需要使用subs
。 subs
用你想要的任何东西替换符号变量......包括数字。此外,因为这是一个符号表达式(感谢Nasser),所以不需要逐点运算符(即.^
)。您可以删除它们并使用普通的标量运算符。
因此,您希望将表达式中的X
和Y
替换为z0
中的相应值:
>> syms X Y;
>> funcF = [ (X^2 + Y^2 + X -4), (Y*cos(X) + X*Y^3 - 1) ];
>> out = subs(funcF, {'X','Y'}, z0)
out =
[ 3/4, 2*cos(1/2) + 3]