필터 지우기
필터 지우기

read multiple points from matrix

조회 수: 8 (최근 30일)
F Schmid
F Schmid 2021년 5월 31일
답변: Star Strider 2021년 5월 31일
I want to read multiple points out of a matrix. Therefore I have the matrix A, and my indices X and Y for the coordinates. I don't need any other values, only those.
A = rand(50,50);
X = [1 2 5];
Y = [1 2 5];
P = A(X,Y)
the code reads all the values, so I only need the diagonal of the matrix. I could use diag but that takes a lot of time, and I need to be time-efficient. Is there a possible way to do that different, to be faster?

채택된 답변

Star Strider
Star Strider 2021년 5월 31일
Use the sub2ind function to create linear indices from the subscripts —
A = rand(50,50);
X = [1 2 5]; % Assuming These Are The Row Indices
Y = [1 2 5]; % Assuming These Are The Column Indices
I = sub2ind(size(A), X, Y)
I = 1×3
1 52 205
P = A(I)
P = 1×3
0.8620 0.3396 0.2798
Check = [A(X(1),Y(1)), A(X(2),Y(2)), A(X(3),Y(3))]
Check = 1×3
0.8620 0.3396 0.2798
If you want a different result, please describe it in some detail.
.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Matrices and Arrays에 대해 자세히 알아보기

태그

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by