How to set elements in 2D matrix based on a given vector?

Hi,
I have a zeros array [0 0 0;0 0 0;0 0 0] and a vector [3;1;2]. I want to have an array [0 0 1;1 0 0;0 1 0]. Is it possible to do that using only indexing and slicing instead of for-loop? Thanks.

 채택된 답변

Atsushi Ueno
Atsushi Ueno 2021년 6월 5일
x = zeros(3);
y = [3;1;2];
x(sub2ind(size(x),1:size(x,1),y')) = 1;

추가 답변 (0개)

카테고리

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

질문:

2021년 6월 5일

댓글:

2021년 6월 5일

Community Treasure Hunt

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

Start Hunting!

Translated by