有趣的必须是一个函数,一个有效的特征向量表达式,或一个内联函数对象。| fzero

51视图(30天)
函数T = FA (y)
i = 1:长度(y)
如果y(我)> = 12.5
N1 (i) = 0
N2 (i) = 8
N3 (i) = 9
陶瓷(i) = 3.76 * y(我)
它们被(我)= y(我)-12.5
其他的
N1 (i) = 2 * (12.5 - y (i))
N2 (i) = 2 * (y (i) - 8.5)
N3 (i) = 0
陶瓷(i) = 3.76 * y(我)
它们被(我)= 0
结束
f{我}= @ (T) -5078905.27 + N1 (i) * (297334.224) + N1 (i) * ((299180 + 37.85 * (T) +(-4571.9) *日志(T)) -294170.430054) + N2 (i) * ((56835 + 66.27 * (T) +(-11634) *日志(T)) -24557.403501) + N3 (i) * ((88923 + 49.36 * (T) +(-7940.8) *日志(T)) -69574.657860) +陶瓷(i) * ((31317 + 37.46 * (T) +(-4559.3) *日志(T)) -26135.539906) +它们被(我)* ((43388 + 42.27 * (T) +(-6635.4) *日志(T)) -27886.197583)
fzero (2500)
结束
我知道,如果我改变我}{f(我)我将能够运行脚本和输入任何我想要的值。然而,我需要这个脚本tor在这一个共同工作
clc;清晰;关闭所有;
r = 7: .1:2.0;
y = 12.5 * r
T = FA2 (y);
我最终想把r值和T值(fzero输出)。如果我改变我}{f(我)我得到不同的错误代码在第二个脚本,“Nonscalar数组的函数处理不允许;使用单元格数组代替。”
我需要做些什么来让这些一起工作吗?谢谢你!
1评论
Stephen23
Stephen23 2018年10月16日
“我知道,如果我改变我}{f(我)我可以运行脚本输入任何值,我想要的。”
不,实际上你会得到一个错误(因为函数句柄不能放到一个数组)。

登录置评。

答案(1)

Stephen23
Stephen23 2018年10月16日
编辑:Stephen23 2018年10月16日
你不需要在任何数组存储功能,你只需要存储输出值:
函数= FA (y)
=南(大小(y));
k = 1:元素个数(y)
有趣= @ (T);
(k) = fzero(有趣,2500);
结束
结束
2的评论
Stephen23
Stephen23 2018年10月17日
@Vickson Leji: fzero 帮助明确状态,必须接受并返回一个函数 标量值 。所以你需要解决你的函数,返回一个标量输出值。

登录置评。

类别

找到更多的在函数创建帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!