Assign values of array to indices of another array

13 ビュー (過去 30 日間)
Georg Bauer
Georg Bauer 2022 年 8 月 16 日
コメント済み: Georg Bauer 2022 年 8 月 16 日
Hello!
I'm not really sure how to word my question (hence the confusing title!). I do have to arrays:
A = [1,2;3,4];
B = [11;22;33;44];
Now I would like to arrange the elements of B in the order of array A. The output should then be like that:
B(A) = [11,22;33,44]
But now I wanna leave some places of the array 0. So at position A(1,1) where there is a zero shouldn't be a vallue of B asignd to (B(1,1) therefore should stay 0 as well).
A = [0,2;3;4];
B(A) = [0,22;33;44]
Thank you!
  1 件のコメント
James Tursa
James Tursa 2022 年 8 月 16 日
Need more details. Is the indexing in A always in that order, except for some of the spots might be 0? Or could the indexing be in a different order such as A = [2,0;4,3]?

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

採用された回答

Chunru
Chunru 2022 年 8 月 16 日
A = [1; 2; 3; 4];
B = [11; 22; 33; 44];
B(A)
ans = 4×1
11 22 33 44
A = [0; 2; 3; 4];
C = zeros(size(A));
C(A>0) = B(A(A>0))
C = 4×1
0 22 33 44

その他の回答 (0 件)

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by