考虑具有5个变量的函数f(y1,y2,y3,y4,z1)=(-(z1^3)/(y3^2))(3(y2-y1+y3^(-1)-z1/10)^2+(1/5)(y2-y1+y3^(-1)-(z1)/10))-y4
。当我放f(1,1,1,1,1)
时,我找到了答案,但是当我写f(v)
时,v=(1,1,1,1,1)
matlab不起作用。我该怎么做(通过第二种方式)?
答案 0 :(得分:1)
您可以编写一个包装函数,该函数将一个向量作为输入参数,并在调用函数之前“解压缩”该向量。
f(y1,y2,y3,y4,z1) = (-(z1^3)/ ...; % your function
fv(v) = f(v(1),v(2),v(3),v(4),v(5));
或者,通过使用适当的索引,使f引用输入向量中的元素:
f(v) = (-(v(5)^3)/(v(3)^2)); ... % etc.