Access to array elements
조회 수: 3 (최근 30일)
이전 댓글 표시
Hi,
I have a matrix, A, and I want to access the elements given by the vectors ind_rows, ind_cols. If I make A(ind_rows,ind_cols) I get a matrix of size ind_rows times ind_cols, but I am just interested in the diagonal of this matrix!
I have found a way to do this:
siz = size(A);
AA = A(1:end); % convert the matrix in a vector
IND = sub2ind(siz,ind_rows,ind_cols);
res = AA(IND);
It works, but I guess there must be a way to do this without rearranging the matrix in a vector, and in a cleaner way.
Thanks in advance!
Ana
댓글 수: 0
채택된 답변
추가 답변 (1개)
Image Analyst
2011년 11월 14일
Ana: The most common way to get the diagonals is to use the eye() function:
m_DiagonalsOnly = m(logical(eye(size(m, 1))))
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!