MATLAB Answers

0

Change a 3x100 double to a 300x1 double

Asked by Hollis Williams on 24 Mar 2019
Latest activity Edited by madhan ravi
on 24 Mar 2019
I have a 3 x 100 double ie. 100 column vectors next to each other all with 3 rows, and I need to take each column vector and put them all on top of each other in one long 300 x 1 column vector, what would be the easiest way of doing this?
I appreciate there is help material on idexing matrices but I could not find anything which particularly explains how to do this.

  0 Comments

Sign in to comment.

1 Answer

Answer by madhan ravi
on 24 Mar 2019
 Accepted Answer

reshape(a.',[],1) % a is of size 3 X 100

  2 Comments

That doesn't quite work as it seems to re-order the elements somehow. So if I have a matrix like
1 8 9
2 6 4
4 2 3
I need the new vector to be
1
2
4
8
6
2
9
4
3
At the moment with your suggestion you get the right size but it's like the elements get bunched together if they have the same size.
a = [ 1 8 9 ;...
2 6 4 ;...
4 2 3 ]
Result = reshape(a,[],1)
%or
Result = a(:)
Gives:
Result =
1
2
4
8
6
2
9
4
3

Sign in to comment.