首页 > 解决方案 > 如何评估多变量函数

问题描述

考虑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具有 5 个变量的函数。当我f(1,1,1,1,1)输入时,我找到了答案,但是当我写f(v)在哪个v=(1,1,1,1,1)matlab 中不起作用时。我该怎么做(通过第二种方式)?

标签: matlab

解决方案


你可以编写一个包装函数,它将一个向量作为输入参数,并在调用你的函数之前“解包”这个向量。

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.

推荐阅读