我有一个简单的MATLAB函数输出多个变量:
function [a,b] = MultipleOutputs()
a = 6;
b = 8;
end
我想将两个输出变量分配给现有向量中的2个特定元素:
x = ones(1,4);
x(2:3) = MultipleOutputs()
但是,这给了我:
x =
1 6 6 1
而不是:
x =
1 6 8 1
我在多种情况下遇到过这个问题,但从来没有找到解决方案。
答案 0 :(得分:2)
您有两个选择:
单独输出后连接矢量
[a,b] = MultipleOutputs();
x = ones(1,4);
x(2:3) = [a,b];
在输出之前连接矢量
function a = MultipleOutputs()
a(1) = 6;
a(2) = 8;
end
x(2:3) = MultipleOutputs();
答案 1 :(得分:2)
当你在另一个函数中运行MultipleOutputs()
时,它只输出第一个元素,在本例中是a
。
所以最终你的陈述x(2:3) = MultipleOutputs()
等同于x(2:3) = 6
。
一个简单的解决方法是提取所有元素:
[a,b] = MultipleOutputs();
x(2:3) = [a b];