如何使用输入命令"T_amb = input('Enter Ambient Temperature in (C) =');"和lsqnonlin函数?

1次观看(过去30天)
我对Matlab有点陌生。
我试图用lsqnonlin函数来解决一个31个方程的非线性系统。我做了两个脚本,一个是函数“Fault_free_HP”:
函数F = Fault_free_HP_initial_input(Y,Lb,Hb)
它包含了所有的非线性方程,它以:
F = [F1;F2;…;F31];
另一个名为“Fault_free_HP_initial_input”,包含每个变量的所有初始猜测和上限和下限,并使用fhandle工具调用函数,如下所示:
Y0 = [.....];Lb = [.....];Hb = [.....];
options = optimset('MaxFunEvals',3000);
fhandle = @Fault_free_HP_2;
[Y,resnorm,residual,exitflag] = lsqnonlin(fhandle,Y0,Lb,Hb,options);
我有10个变量,应该由用户输入,然后在代码中作为常量处理。我在想做一个用户友好的界面,例如用户输入图形用户界面。
当我在函数脚本中使用输入命令“T_amb = input('Enter Ambient Temperature in (C) =');”时,它要求我为每一次迭代输入它们,当我试图在另一个脚本中编写输入命令时,函数不识别它们,并给了我一个错误消息,告诉我我输入的变量是未定义的。
我有一种可能的方法,我可以包括输入命令与Lsqnonlin函数,以便用户可以改变这些常数时,他运行的代码,而不需要打开代码,并把它写在函数脚本?
非常感谢你的帮助!

接受的答案

艾伦·韦斯
艾伦·韦斯 2015年6月3日
您需要编写脚本,以便输入的值成为目标函数中作为常量处理的参数。看到 传递额外参数 如何做到这一点。
简而言之,不要把要求参数的代码放在目标函数中。这段代码应该先运行,然后调用 lsqnonlin
艾伦·韦斯
MATLAB数学工具箱文档
1评论
M.Abuasbeh
M.Abuasbeh 2015年6月4日
非常感谢!
终于成功了……
我在调用lsqnonlin函数之前使用了一个匿名函数!

登录评论。

更多答案(0)

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!