Matlab& Simulink - 在Simulink模拟器中加载特定的.mat

时间:2016-08-18 08:38:27

标签: matlab simulink mat

我有一组.mat文件,它们都代表一个对象的力量,取决于它的态度。我想在Simulink模拟器中加载它们,但是一次一个,通过指定正确的名称。

我尝试使用Matlab函数,但似乎没有工作,好像函数“load”不能通过Simulink使用。

如果有人有想法,我将不胜感激!

2 个答案:

答案 0 :(得分:0)

您可能遇到范围问题而未将.mat文件加载到正确的工作区中。默认情况下,Simulink使用Base工作区来查找变量。确保函数返回并在此处设置正确的变量,通常使用脚本更容易实现此目的。

这意味着您将使用基本工作区,这可能是不可取的。如果要保持数据封装,可以生成masked subsystem并从掩码的初始化脚本中加载参数。这将定义掩码子系统内任何块都可访问的变量。

答案 1 :(得分:0)

查看此链接: https://in.mathworks.com/help/simulink/ug/functions-supported-for-code-generation--categorical-list.html

我会在这里引用相关内容:

  

- 仅在为Simulink®仿真生成MEX或代码时使用。

     

- 要加载编译时常量,请使用coder.load。

     

- 如果没有赋值给结构或数组,则不支持使用该函数。例如,使用S = load(filename),而不是   负载(文件名)。

     

- 输出S必须是没有任何下标的结构或数组的名称。例如,不允许S(i)= load('myFile.mat')。

     

- 加载的参数必须是编译时常量字符向量。

     

- 不支持加载对象。

     

- 如果MAT文件包含不受支持的构造,请使用load(filename,variables)仅加载受支持的构造。

     

- 您无法在用于代码生成的函数中使用save。代码生成器不支持保存功能。而且,你   不能使用coder.extrinsic和save。在生成代码之前,您   可以使用save将工作区数据保存到MAT文件中。

     

- 您必须使用coder.varsize显式声明使用load函数加载的可变大小数据。