How to reshape rows into columns
1 回表示 (過去 30 日間)
古いコメントを表示
How can I change the following matrix:
[1, 5,0,0; 2,4,0,0; 3, 2,6,4]
to look like:
[1,5; 2, 4; 3,2; 3,6; 3,4]?
Any suggestion would be great. Thanks
0 件のコメント
採用された回答
Andrei Bobrov
2011 年 9 月 1 日
A =[1, 5,0,0; 2,4,0,0; 3, 2,6,4]
[i1 j1] = find(A(:,2:end))
sz = size(A)
out = sortrows([A(i1,1) A(sz(1)+sub2ind(sz- [0 1],i1,j1))],1)
more
[i2 j2 c] = find(A)
t = j2~=1
out = sortrows([A(i2(t),1) c(t)],1)
variant 3
AA = A(:,2:end)
[i1,~] = find(AA)
out = sortrows([A(i1,1) reshape(AA(AA~=0),[],1)],1)
3 件のコメント
Andrei Bobrov
2011 年 9 月 1 日
>> A = [1,5,0,0;3,4,0,0;5,2,6,4];
[i2 j2 c] = find(A);
t = j2~=1;
out = [A(i2(t),1) c(t)]
out =
1 5
3 4
5 2
5 6
5 4
その他の回答 (1 件)
Sivakumaran Chandrasekaran
2011 年 9 月 1 日
Hi, There is a command named reshape. Check with it.
2 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!