我在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)声明为零,否则会出现以下问题:
在某些执行路径上没有分配输出参数'Var_RX1‘。
是否有方法将这些数组声明为此函数的输出,并在程序开始时启动值?
编辑:我没有解释为什么我不希望零出现。问题是,当函数第二次执行时,在读取之前存储在任何变量上的值被替换为零。
发布于 2018-01-31 17:52:37
我用simulink解决了我的问题-如果是块,那么这个值并不是每次读/写都会被替换。

https://stackoverflow.com/questions/48546328
复制相似问题