我正在通过 Matlab 中的循环调用 Simulink 仿真。我能够发送许多数字参数(例如积分器的初始条件(,但是我的"From File"块中出现错误。
我不太确定其他人是怎么做到的,但是在我工作的地方,我们通过一个自制的功能发送它,该函数接受结构输入。结构的字段是变量名称,字段的值是变量本身。例如:
pb = struct('preload',preload(pl_index),...
'displacement',preload_displacement(pl_index),...
'filename',fileList{m});
">预载荷"和"位移"变量的评估结果很好,但filename
给出一个错误:
filename.mat
有谁知道您是否可以在"From File"块中传递变量的值filename
(fileList{m}
(,如果是这样,如何做到这一点。谢谢!
回答我自己的问题!
我使用了 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
传递给我的函数。