Reshaping a square matrix to a vector

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 日

2 投票

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 日

0 投票

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

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by