“来自文件”在循环

时间:2017-07-06 11:54:55

标签: matlab simulink

我通过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'块中传递变量filenamefileList{m})的值,如果是,如何做到这一点。谢谢!

1 个答案:

答案 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传递给我的函数。