Reshaping a square matrix to a vector

6 次查看(过去 30 天)
Hi, I need to convert a 10 by 10 matrix into a 100 by 1 matrix by concatenating each column to the bottom of the preceding one. For example:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
into [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]'
I've tried using reshape but I'm not getting what I want... moreover, I'm trying to use a for loop but can't seem to get it right.
Any help is much appreciated.
Thanks!
-E

采纳的回答

James Tursa
James Tursa 2012-3-23
This matches your words:
A = rand(10,10);
B = A(:); % one way
B = reshape(A,100,1); % another way
This matches your example:
B = reshape(A.',100,1);

更多回答(1 个)

Esteban
Esteban 2012-3-26
Woops, my fault... yes I meant:
[1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16]'
I tried it and it works.
Thanks for your help!
-E

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by