How can I make the output of a function always a column vector, regardless of if the input is a column or row vector?
75 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Michael Perry
le 7 Fév 2018
Réponse apportée : Robert
le 21 Mar 2022
I'm having trouble with a problem where I need the output to be a column vector, but inputs are sometimes provided as row vectors and other times as column vectors (so sometimes transposing it helps, but sometimes it flips a column vector to a row vector, making it wrong.) Thanks!
1 commentaire
per isakson
le 7 Fév 2018
Modifié(e) : per isakson
le 7 Fév 2018
>> row = 1:12; % test data
>> row
row =
1 2 3 4 5 6 7 8 9 10 11 12
>> reshape( row, [],1 )
ans =
1
2
3
4
5
6
7
8
9
10
11
12
>>
or
>> row(:)
ans =
1
2
3
4
5
6
7
8
9
10
11
12
I think reshape is more readable.
Test this with a column vector
Réponse acceptée
possibility
le 7 Fév 2018
%Check if the output is a column vector
if size(output,2)>1
output=output(:)
end
Hope the problem is understood correctly.
Best
0 commentaires
Plus de réponses (1)
Robert
le 21 Mar 2022
You can use isrow for this:
if isrow(output)
output = output';
end
0 commentaires
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!