MATLAB参数保存、调用

最近做优化仿真,需要将m文件里的参数保存到工作空间以便simulink模型调用。

1、怎么把变量保存到工作空间(在一次仿真中参数不变,就是一个变量)

assignin('base','A','x(1)')%……不是必须是已知的具体数才可以用这个函数的

2、simulink模型怎么从工作空间调用定义好的参数(就是一个数,不与时间相关)

from workspace:开始出现问题,就是输入的参数需要有两列,第一列是时间参数,第二列是要输入的参数,后来改成[t,A],又出现了矩阵维度不同的问题;

signal from workspace:可以输入标量,但是出现了与模型中其他模块样本时间不同的问题,我给改成1,-1都不行

global定义全局变量,在m文件和simulink中的fcn中都定义了全局变量,但是还是出现了.Global declaration not resolved to a Data Store Memory block registered via the Ports and Data Manager.问题

evalin调用:在simulink模型中的MATLAB fcn用evalin函数调用工作空间中的变量:Function 'evalin' is not supported for code generation. Consider adding coder.extrinsic('evalin') at the top of the function to bypass code generation.代码生成不支持这个函数

save(‘A.mat’,‘t’,'A'):把变量保存到当前路径下,然后用from matfile调用,结果fcn不能识别输入的参数,本来就是个数,怎么可能识别的了一个矩阵了

constant:把变量保存到工作空间后,直接用常数模块改成变量名,,,,终于可以了

你可能感兴趣的:(MATLAB)