obtain a matrix out of other matrix
조회 수: 2 (최근 30일)
이전 댓글 표시
Hello
I have a 1*104 matrix which ı have to create a 8*13 matrix out of it.
For one column of the final 8*13 matrix I can do the following code but how can I write one single code to get the whole matrix
zs_d=zeros(8,1);
for r=1:8;
zs_d(8,1)=(zs(13*r-12));
end
This gives me the first coloumn and for the second column I can write :
for r=1:8;
zs_d(8,1)=(zs(13*r-11));
end
and it goes the same till end...
I tried to write it in one for loop like the following but it gave me an error:
zs_d=zeros(8,13);
for r=1:8,c=1:12;
zs_d(8,13)=(zs(13*r-13-c));
end
error : Subscript indices must either be real positive integers or logicals.
thanks for the help
댓글 수: 2
Fangjun Jiang
2019년 10월 24일
Your code does not match your description. In any case, I think reshape() should help you.
채택된 답변
추가 답변 (1개)
Steven Lord
2019년 10월 24일
편집: Steven Lord
2019년 10월 24일
reshape your vector to be 13-by-8 then take the transpose of it.
>> x = 1:104;
>> y = reshape(x, [13 8])
>> z = y.'
You can do this in one step, but I think it's important to see the intermediate result (y) so you can see how MATLAB arranges elements. This is useful knowledge for a technique called linear indexing.
참고 항목
카테고리
Help Center 및 File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!