在 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.

被替换