我通过Matlab中的循环调用Simulink模拟。我能够发送许多数字参数(例如积分器的初始条件),但是在“From File”块中出现错误。
我不太确定其他人是怎么做的,但是在我工作的地方,我们通过一个带有结构输入的自制功能发送它。结构的字段是变量名称,字段的值是变量本身。例如:
pb = struct('preload',preload(pl_index),...
'displacement',preload_displacement(pl_index),...
'filename',fileList{m});
'preload'和'displacement'变量评估得很好,但filename
给出错误:
filename.mat
有没有人知道如果你能在'From File'块中传递变量filename
(fileList{m}
)的值,如果是,如何做到这一点。谢谢!
答案 0 :(得分:1)
回答我自己的问题!
我使用Simulink“From Workspace”块而不是“From File”。
f = load(fileList{m});
fnames = fieldnames(f);
% The files were arranged weird, so I have one field inside the structures... and they all had different names.
switch fnames{1}
case 'first'
filedata = f.first;
case 'second'
filedata = f.second;
case 'third'
filedata = f.third;
case 'fourth'
filedata = f.fourth;
end
t = filedata(1,:);
u = filedata(2,:);
loaded_file = timeseries(u,t);
我将loaded_file
传递给我的函数。