How can I make the output of a function always a column vector, regardless of if the input is a column or row vector?
98 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Michael Perry
el 7 de Feb. de 2018
Respondida: Robert
el 21 de Mzo. de 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 comentario
per isakson
el 7 de Feb. de 2018
Editada: per isakson
el 7 de Feb. de 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
Respuesta aceptada
possibility
el 7 de Feb. de 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 comentarios
Más respuestas (1)
Robert
el 21 de Mzo. de 2022
You can use isrow for this:
if isrow(output)
output = output';
end
0 comentarios
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!