2016-08-18 170 views
0

我有一组.mat文件,它们都根据其态度表示对象上的力。我想通过指定正确的名称将它们加载到Simulink模拟器中,但一次加载它们。Matlab&Simulink - 在Simulink模拟器中加载特定的.mat

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

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

+0

使用MATLAB功能块中的外部函数并从该函数调用加载。 – Navan

回答

0

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

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

0

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

我会在这里引述有关的东西:

- 使用仅生成MEX或代码时的Simulink仿真。

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

- 不支持在没有赋值给结构或数组的情况下使用该函数。例如,使用S = load(filename),而不是使用 load(filename)。

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

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

- 不支持加载对象。

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

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

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