也许这是非常基本但我找不到答案。
我有一个输出向量的函数。例如,如果你这样做
[c1 c2 c3] = quat2angle(a)
但如果你这样做
quat2angle(a)
然后它只输出c1
。我想[1 2 3]'- quat2angle(a)
但是它只减去c1
。
有没有办法让矢量出来?
答案 0 :(得分:3)
如果该功能是您自己的,或者您可以修改它,您可以使用varargout
和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
使用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