最近做优化仿真,需要将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函数调用工作空间中的变量:Func
在编写m文件的时候经常出现需要替换更改的情况,像Word一样MATLAB也有查找替换功能
这里说的是用xlswrite写代码的方式
xlswrite('data.xlsx',
A):将已经定义过的A数字、单元格或者数组输出为data命名的Excel表格中。
xlswrite('D:\junk\newdata.xlsx',
A)将已经定义过的A数字、单元格或者数组输出为newdata命名的D盘junk文件夹中的Excel表格中
xlswrite('data.xlsx',
A,'C1:C2')将已经定义过的A数字、单元格或者数组输出为data命名的Excel表格中的指定区域内。
用To workspace导出的数据时,要选择array数组类型的数据,然后用xlswrite导出Excel,要不然会报错:
error use xlswrite......
Input data must be a numeric, cell, or logical array.