How do I turn a nxm matrix into a single array?

33 Ansichten (letzte 30 Tage)
Ahsan Khan
Ahsan Khan am 17 Okt. 2012
hi Matlabers,
say I have a matrix
[1 2 3 4;5 6 7 8;9 10 11 12; 13 14 15 16]
how can I turn this matrix so all the rows are combined into one. one after the other.
result
[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]?
thanks in advance. cheers SN

Akzeptierte Antwort

Sachin Ganjare
Sachin Ganjare am 17 Okt. 2012
Bearbeitet: Sachin Ganjare am 17 Okt. 2012
You can use reshape command:
a= [1 2 3 4;5 6 7 8;9 10 11 12; 13 14 15 16]
b = reshape(a,1,16)
or simply
b = a(:)'
Hope it helps!!!
  3 Kommentare
Ahsan Khan
Ahsan Khan am 17 Okt. 2012
thanks so much...just what i needed
Ahsan Khan
Ahsan Khan am 17 Okt. 2012
thanks for all the help. but one last question, now say if I wanted to plot this in increments of 4. so it would plot columns 1:4 then i press enter and it plots 5:8... and so on. so it would look something like:
for i = 1:length(b)
plot(i,b(1:4)) % <<I KNOW THIS ISNT RIGHT...HOW DO I modify this..pls?
pause
end
am I even on the right track? thanks in advance

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

manoj saini
manoj saini am 17 Okt. 2012
to exact answer >>b=reshape(a',1,16) because matlab always prefer coloum element so pass a'(a transpose) for your exact output

Kategorien

Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by