How can I make the output of a function always a column vector, regardless of if the input is a column or row vector?

118 vues (au cours des 30 derniers jours)
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
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

Connectez-vous pour commenter.

Réponse acceptée

possibility
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

Plus de réponses (1)

Robert
Robert le 21 Mar 2022
You can use isrow for this:
if isrow(output)
output = output';
end

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!

Translated by