也许这是非常基本的,但我找不到答案。
我有一个输出向量的函数。例如,如果你这样做
[c1 c2 c3] = quat2angle(a)
但如果你这样做
quat2angle(a)
然后它只输出c1
. 我想做,[1 2 3]'- quat2angle(a)
但它只减去c1
.
有没有办法取出向量?
如果该功能是您自己的,或者您可以修改它,您可以使用varargout
and执行以下操作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]
您可以像这样定义包装函数并使用它而不是原始函数
function c = quat2angle_w(a)
[c1 c2 c3] = quat2angle(a);
c = [c1 c2 c3];
end