在 Simulink 中声明数组
Declare array in Simulink
我在 Simulink 上有一个函数,可以根据数字将一个输入变量复制到一个输出(类似于 DEMUX,但可选择)
function [device,Var_RX1, Var_RX2, Var_RX3, Var_RX4, Var_RX5, Var_RX6, Var_RX7, Var_RX8, Var_RX9, Var_RX10] = fcn(device, Var_RX)
Var_RX1 = zeros(50,1,'single');
Var_RX2 = zeros(50,1,'single');
Var_RX3 = zeros(50,1,'single');
Var_RX4 = zeros(50,1,'single');
Var_RX5 = zeros(50,1,'single');
Var_RX6 = zeros(50,1,'single');
Var_RX7 = zeros(50,1,'single');
Var_RX8 = zeros(50,1,'single');
Var_RX9 = zeros(50,1,'single');
Var_RX10 = zeros(50,1,'single');
if (device == 1)
Var_RX1 = Var_RX;
elseif (device == 2)
Var_RX2 = Var_RX;
elseif (device == 3)
Var_RX3 = Var_RX;
elseif (device == 4)
Var_RX4 = Var_RX;
elseif (device == 5)
Var_RX5 = Var_RX;
elseif (device == 6)
Var_RX6 = Var_RX;
elseif (device == 7)
Var_RX7 = Var_RX;
elseif (device == 8)
Var_RX8 = Var_RX;
elseif (device == 9)
Var_RX9 = Var_RX;
elseif (device == 10)
Var_RX10 = Var_RX;
end
end
问题是调用函数时我必须将变量(Var_RX
)声明为零,否则会出现以下问题:
Output argument 'Var_RX1' is not assigned on some execution paths.
有没有办法将这些数组声明为该函数的输出,并在程序开头启动值?
编辑:
我没有解释为什么我不想出现零。
问题是当函数第二次执行时,读取之前存储在任何变量上的值被零替换。
我使用 simulink-if 的块解决了我的问题,然后该值不会每隔 read/write.
被替换
我在 Simulink 上有一个函数,可以根据数字将一个输入变量复制到一个输出(类似于 DEMUX,但可选择)
function [device,Var_RX1, Var_RX2, Var_RX3, Var_RX4, Var_RX5, Var_RX6, Var_RX7, Var_RX8, Var_RX9, Var_RX10] = fcn(device, Var_RX)
Var_RX1 = zeros(50,1,'single');
Var_RX2 = zeros(50,1,'single');
Var_RX3 = zeros(50,1,'single');
Var_RX4 = zeros(50,1,'single');
Var_RX5 = zeros(50,1,'single');
Var_RX6 = zeros(50,1,'single');
Var_RX7 = zeros(50,1,'single');
Var_RX8 = zeros(50,1,'single');
Var_RX9 = zeros(50,1,'single');
Var_RX10 = zeros(50,1,'single');
if (device == 1)
Var_RX1 = Var_RX;
elseif (device == 2)
Var_RX2 = Var_RX;
elseif (device == 3)
Var_RX3 = Var_RX;
elseif (device == 4)
Var_RX4 = Var_RX;
elseif (device == 5)
Var_RX5 = Var_RX;
elseif (device == 6)
Var_RX6 = Var_RX;
elseif (device == 7)
Var_RX7 = Var_RX;
elseif (device == 8)
Var_RX8 = Var_RX;
elseif (device == 9)
Var_RX9 = Var_RX;
elseif (device == 10)
Var_RX10 = Var_RX;
end
end
问题是调用函数时我必须将变量(Var_RX
)声明为零,否则会出现以下问题:
Output argument 'Var_RX1' is not assigned on some execution paths.
有没有办法将这些数组声明为该函数的输出,并在程序开头启动值?
编辑: 我没有解释为什么我不想出现零。 问题是当函数第二次执行时,读取之前存储在任何变量上的值被零替换。
我使用 simulink-if 的块解决了我的问题,然后该值不会每隔 read/write.
被替换