Matlab函数与向量输出返回整个向量

时间:2013-08-13 19:11:08

标签: matlab vector

也许这是非常基本但我找不到答案。

我有一个输出向量的函数。例如,如果你这样做

[c1 c2 c3] = quat2angle(a) 

但如果你这样做

quat2angle(a) 

然后它只输出c1。我想[1 2 3]'- quat2angle(a)但是它只减去c1

有没有办法让矢量出来?

2 个答案:

答案 0 :(得分:3)

如果该功能是您自己的,或者您可以修改它,您可以使用varargoutnargout执行以下操作:

function varargout=quat2angle(a)
% Create example output for demo
c1 = a;
c2 = 2*a.^2;
c3 = 3*a;
% Switch output format based on how many output arguments user specified
if nargout <= 1
    varargout{1} = [c1;c2;c3];
else
    varargout{1} = c1;
    varargout{2} = c2;
    if nargout > 2
        varargout{3} = c3;
    end
end

使用varargout并非完全必要,因为如果c1 = [c1;c2;c3];,您只需选择返回nargout <= 1即可。但对于更复杂的情况,这就是你要做的事情。

如果无法修改该功能,那么除了

之外别无选择
[c1,c2,c3] = quat2angle(a);
[1 2 3]' - [c1;c2;c3]

答案 1 :(得分:2)

您可以定义这样的包装函数,并使用它而不是原始函数

function c = quat2angle_w(a)
[c1 c2 c3] = quat2angle(a);
c = [c1 c2 c3];
end