Extract specific values from a 3D matrix?

Hello,
I have a 3d matrix (call it A) of the following dimension: 9000, 9, 2. From this matrix I want to update two values in the following positions:
row_index=[4000, 3000]
col_index=[4,5]
Basically I want:
A(row_index, col_index,:)=B
where B is a 2x1 vector.
I could do this within a loop but I'd like to vectorize this operation.
Does anybody have a suggestion on how to do this in an efficient way?

답변 (1개)

Fangjun Jiang
Fangjun Jiang 2023년 1월 31일
편집: Fangjun Jiang 2023년 1월 31일
A(sub2ind(size(A),row_index,col_index))=B
For example
A=false(6,6,6);
row_index=[4, 3];
col_index=[4,5];
B=[true;true];
A(sub2ind(size(A),row_index,col_index))=B;
sum(A,'all')
ans = 2

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품

릴리스

R2022a

질문:

2023년 1월 31일

편집:

2023년 1월 31일

Community Treasure Hunt

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

Start Hunting!

Translated by