matrix manupulation and reading diagonally
이전 댓글 표시
Hello Team,
i have a matrix
Matrix_test = [13,10,5,2;7,14,11,6;3,8,15,12;1,4,9,16];

I want to read the matrix in the order mentioned in the matrix.
Starting from left bottom (1), then right top (2) and then again 2nd diagonal from left (3,4) and then 2nd right diagonal (5,6) and so on and so forth.
Please support in resolving it.
Edit : i there any way to create this kind of matrix for any n-by-n matrix automatically. i have created this Matrix_test manually but if i want 8x8 matrix in similar pattern . How to create it through generic code.
Thanks in advance.
채택된 답변
추가 답변 (1개)
Bruno Luong
2020년 12월 8일
편집: Bruno Luong
2020년 12월 8일
Matrix_test = [13,10,5,2;7,14,11,6;3,8,15,12;1,4,9,16]
[m,n]=size(Matrix_test);
[i,j]=ndgrid(1:m,1:n);
jmi = j(:)-i(:);
[~,is]=sortrows([-abs(jmi) jmi]);
Matrix_test(is)
댓글 수: 4
NIKHIL
2020년 12월 11일
NIKHIL
2020년 12월 11일
Bruno Luong
2020년 12월 11일
Create matrix with dimension m x n.
m=8; n=8;
[i,j]=ndgrid(1:m,1:n);
jmi = j(:)-i(:);
[~,is]=sortrows([-abs(jmi) jmi]);
M=zeros(m,n);
M(is)=1:m*n
NIKHIL
2020년 12월 11일
카테고리
도움말 센터 및 File Exchange에서 Create Requirement Links에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!