我的估算有问题。
我有一个函数,它取决于未知向量V = [v1,...,v4]的值。 我还有一个参考数据矢量YREF = [yref1,...,yrefn]。 我想写一个函数,它返回向量Y(以便稍后比较,比如使用lsqnonlin)。我知道“arrayfun”,但似乎没有用。
我有一个子函数,它返回范围[-100,100],
中的具体值 %--------------------------------------------------------------------------
function y = SubFunction(Y, V)
y = fzero(@(x) v(1).*sinh(x./v(2)) + v(3).*x - Y, [-100 100]);
end
%--------------------------------------------------------------------------
然后我对结果做了一些操作:
%--------------------------------------------------------------------------
function y = SomeFunction(Y,V)
temp = SubFunction (Y,V);
y = temp + v(4).*Y;
end
%--------------------------------------------------------------------------
这些函数适用于单个Y值,但不适用于整个向量。如何将结果存储到矩阵中以供将来比较?
提前致谢 克里斯
答案 0 :(得分:0)
如果Y
是一个向量,那么定义为fzero
的参数的匿名函数将返回一个向量,而不是标量。
您可以使用循环解决它(注意匿名函数定义中的Y(k)
):
function y = SubFunction(Y, v)
y = zeros (size(Y));
for k = 1 : length (Y)
y(k) = fzero(@(x) v(1).*sinh(x./v(2)) + v(3).*x - Y(k), [-100 100]);
end
end