在工作区的 Simulink/MATLAB 函数中设置信号维度
Setting dimension of signal in Simulink/MATLAB function from workspace
假设我有一个包含如下内容的 Simulink 块:
function y = myFnc(x, par)
y = zeros(1, par(1)) + x;
我在 模型资源管理器 中将 par
声明为参数,并从工作区读取其值。
现在,Simulink 推断 y
是一个 可变大小信号 ,具有与之相关的所有非常讨厌的限制。
有没有什么方法可以参数化来自工作区的信号维度,同时又以某种方式使信号保持固定大小?
在 C/C++ 中,我只声明一个常量。
有一些限制的工作是创建一个 class 具有常量属性,例如:
classdef DIMS
properties (Constant)
NR_SIGNALS = 10
LEN_SIG = 32000
BLOCKS = 2 * DIMS.NR_SIGNALS
end
end
... 并在适用的情况下使用常量属性(例如 DIMS.LEN_SIG
)作为参数。
参数化将在模型编译时固定,甚至在生成的代码中进行硬编码(如果适用)。
假设我有一个包含如下内容的 Simulink 块:
function y = myFnc(x, par)
y = zeros(1, par(1)) + x;
我在 模型资源管理器 中将 par
声明为参数,并从工作区读取其值。
现在,Simulink 推断 y
是一个 可变大小信号 ,具有与之相关的所有非常讨厌的限制。
有没有什么方法可以参数化来自工作区的信号维度,同时又以某种方式使信号保持固定大小?
在 C/C++ 中,我只声明一个常量。
有一些限制的工作是创建一个 class 具有常量属性,例如:
classdef DIMS
properties (Constant)
NR_SIGNALS = 10
LEN_SIG = 32000
BLOCKS = 2 * DIMS.NR_SIGNALS
end
end
... 并在适用的情况下使用常量属性(例如 DIMS.LEN_SIG
)作为参数。
参数化将在模型编译时固定,甚至在生成的代码中进行硬编码(如果适用)。