1

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

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

[c1 c2 c3] = quat2angle(a) 

但如果你这样做

quat2angle(a) 

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

有没有办法取出向量?

4

2 回答 2

3

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

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

使用 ofvarargout并不是完全必要的,因为您可以简单地选择 return c1 = [c1;c2;c3];if nargout <= 1。但对于更复杂的情况,这是你会做的事情。

如果无法修改功能,那么您别无选择

[c1,c2,c3] = quat2angle(a);
[1 2 3]' - [c1;c2;c3]
于 2013-08-13T19:57:07.033 回答
2

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

function c = quat2angle_w(a)
[c1 c2 c3] = quat2angle(a);
c = [c1 c2 c3];
end
于 2013-08-13T21:06:14.890 回答