フィルターのクリア

Replace arrays of a matrix with a vector

1 回表示 (過去 30 日間)
amin
amin 2020 年 2 月 4 日
コメント済み: amin 2020 年 2 月 4 日
Hi,
I have a matrice R like :
R=zeros(3);
I need to change 3 array of R:
c=[1 1;3 2;1 2];
with new values in this vector:
Newvalue=[ 3 7 9];
So the final result is :
R=[3 9 0;0 0 0;0 7 0]
I know that I can do it easily with a For loop to check every element and replace new value.
But I want to vectorize this, i.e. with no loop.

採用された回答

KSSV
KSSV 2020 年 2 月 4 日
編集済み: KSSV 2020 年 2 月 4 日
Read about sub2ind.
R=zeros(3);
c=[1 1;3 2;1 2];
Newvalue=[ 3 7 9];
% get global indices
idx = sub2ind(size(R),c(:,1),c(:,2)) ;
R(idx) = Newvalue
  1 件のコメント
amin
amin 2020 年 2 月 4 日
Thank you so much, it is exacly what I was looking for.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by