How to operate on multiple function outputs?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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.
0 commentaires
Réponse acceptée
Plus de réponses (1)
the cyclist
le 17 Mai 2014
x = cell(1,3);
[x{:}] = dcm2angle(t, 'XYZ') * 180 / pi;
2 commentaires
the cyclist
le 20 Mai 2014
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()
Voir également
Catégories
En savoir plus sur Get Started with Aerospace Blockset dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!