Matlab从excel加载不同的数据

时间:2013-08-16 16:30:42

标签: matlab simulink

在simulink中我有一个短的传输线模型。现在我希望从excel文件导入加载数据。

但是在matlab的帮助部分,他们声明文件必须是

的形式
TIME DATA
0.2  1000
0.4  1500
0.6  800

并使用xlsread()函数。我这样做并以矩阵形式获取数据。

但我希望simulink应该获取数据1000,模拟它,输出结果然后获取数据1500并再次模拟......等等。 我这样做是因为数据是100行,并且每次在simulink中更改块的值都是不可能的,也是无聊的。

是否可以导入一个数据集,模拟它,o / p其结果(可能在excel文件中),然后再获取另一个数据集并再次模拟它......?

1 个答案:

答案 0 :(得分:1)

您应该设置模型,以便所有参数(或至少所有需要从一个模拟运行更改为下一个模拟运行的参数)都是MATLAB变量的名称。当您开始模拟时,模型将在MATLAB工作区中查找具有该名称的变量的值,并且该值将在模拟中使用。

在运行模拟之前,您应该使用函数xlsread(在MATLAB中)将Excel数据加载到MATLAB工作区(听起来就像您已经这样做了)。然后你应该将这些数据拆分出来,在MATLAB工作区中创建与你在模型中使用的变量相对应的适当变量(听起来你还没有这样做)。

假设您已成功使用xlsread并创建了矩阵

myData = [0.2 1000; 0.4 1500;0.6 800];

然后你想要像

这样的东西
for idx = 1:size(myData,1)
   myRequiredParameter = myData(idx,2); % Use this variable as a parameter in your model
   mySimulationResults = sim('MyModelName'); % run the simulation
   % Post process the results
end