How to get column function result into separate variables?

What I mean is you can do:
A=rand(2);
[a,b]=size(A);
But is it possible to do something like:
A=rand(2);
[a;b]=size(A)';

1 commentaire

Stephen23
Stephen23 le 14 Oct 2018
Modifié(e) : Stephen23 le 14 Oct 2018
"How to get column function result into separate variables?"
The question is not clear. The output of size as you are using it with two output arguments is NOT one "vector", it is two output arguments which have absolutely no dimensional/positional/... relationship with each other. Definitely NOT one "vector" or array as you seem to assume:
[a,b]=size(A);
^^^^^ This is NOT a row vector!

Connectez-vous pour commenter.

Réponses (2)

KALYAN ACHARJYA
KALYAN ACHARJYA le 14 Oct 2018
Modifié(e) : KALYAN ACHARJYA le 14 Oct 2018
But is it possible to do something like:
No, size(X) returns the row vector [1 1].
A=rand(2);
[a;b]=size(A)';
If you tried this one [a;b], it is vector [2,1]
This see the example, you can do this one, this way
>> [a b]=size(A);
>> t=[a b]'
t =
2
2
[m,n]=size(X) returns the size of matrix X in separate variables m and n, here you can use the intermediates variables.
What you have tried, get the size, it must be stored in variables [a;b], if you directly tried another function (transpose) without store it, how can you do that.
--------
A=rand(2);
[a b]=size(A');

4 commentaires

Maybe size() wasn't best example here. How to deal with this one:
A=rand(2);
B=rand(2,1);
[x;y]=A*B; %incorrect
What you want to do exactly?
I'm just curious if it is possible to get x and y like in this example without creating additional temporary variables (and also I don't want to replace [x;y] with a single vector).
Check with whos, I found a very important question, Thanks for the question, learning for me also
>> A=rand(2);
B=rand(2,1);
>> C=A*B;
>> y=[6;7];
>> whos
Name Size Bytes Class Attributes
A 2x2 32 double
B 2x1 16 double
C 2x1 16 double
y 2x1 16 double

Connectez-vous pour commenter.

You should have a look at deal() -- though if you do not use a temporary variable then it helps to use an auxiliary function
expand_cell = @(C) C{:};
[x, y] = expand_cell( num2cell( A* B) );

Catégories

En savoir plus sur Vehicle Dynamics Blockset dans Centre d'aide et File Exchange

Produits

Version

R2018b

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by