我有一个脚本调用一个函数,调用一个函数来模拟一个模型。第二个函数还加载了simulink模型需要查找表的变量。现在,如果我运行它,matlab告诉我,它不知道那些变量。所以我假设,变量必须在base-workspace中,以便simulink识别它们,我试着调用
vars=whos;
for k_laden=1:length(vars)
assignin('base', vars(k_laden).name, eval(vars(k_laden).name))
end
在第二个函数中,但是matlab告诉我
???变量" ans"未定义。
==>中的错误esm6 at 76 assignin(' base',vars(k_laden).name,eval(vars(k_laden).name))
==>中的错误Optimierung_Querdynamik_MBT at 87 y = esm6(param_komplett,identi);
==>中的错误识字在176 [param_plotten,guete_wert] = Optimierung_Querdynamik_MBT(ESM_Wahl,Plotten,param_plotten,identi);
有谁知道如何解决这个问题?提前谢谢。
编辑: simulink Needs的变量由load-command创建。因此,如果您给我一种从函数调用load命令但直接将变量加载到base-workspace中的方法可能会有所帮助 如果我可以定义simulink模型正在使用哪个工作区,它也可能会有所帮助。
答案 0 :(得分:3)
默认情况下,Simulink在基础工作区中查找,但假设您使用函数中的sim
函数模拟模型,那么只需在函数工作区中定义变量并使用
sim('modelname','SrcWorkspace','current');