How to operate on multiple function outputs?
이전 댓글 표시
Take this as an exmaple
t = [0.997020539 -0.07615956 0.0122; -0.076640022 -0.996018987 0.04553; 0.008683887 -0.046323856 -0.99888];
x = dcm2angle(t, 'XYZ') * 180 / pi
x =
177.344786261912
This is the first value only. I can get what I want by doing the following.
[x(1) x(2) x(3)] = dcm2angle(t,'XYZ'); x = x * 180 / pi
x =
Columns 1 through 2
177.344786261912 0.49755632844709
Column 3
4.39562805575083
I want a way to do something like x = [dcm2angle(t, 'XYZ')] * 180 /pi;
Any ideas? I tried the above, with {} and deal(), none did the trick.
채택된 답변
추가 답변 (1개)
the cyclist
2014년 5월 17일
x = cell(1,3);
[x{:}] = dcm2angle(t, 'XYZ') * 180 / pi;
댓글 수: 2
Matt
2014년 5월 19일
the cyclist
2014년 5월 20일
Hm. Just to be clear, you did the preallocation step?
x = cell(1,3);
Maybe try
x = cell(3,1);
Also, I don't have the Aerospace Toolbox, so I was only going by the online documentation, and then created my own function as follows:
function [x,y,z] = answerTest()
x = 1;
y = 2;
z = 3;
end
and then calling
x = cell(1,3);
[x{:}] = answerTest()
카테고리
도움말 센터 및 File Exchange에서 Aerospace Applications에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!