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

187 views (last 30 days)
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 Comment
per isakson
per isakson on 7 Feb 2018
Edited: per isakson on 7 Feb 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

Sign in to comment.

Accepted Answer

possibility
possibility on 7 Feb 2018
%Check if the output is a column vector
if size(output,2)>1
output=output(:)
end
Hope the problem is understood correctly.
Best

More Answers (1)

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

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by