Create an array based on the values in two other arrays

Hello, I have an array A(300x1) where the numbers vary between 1 and 198 in no particular order and some rows are nan other rows are repeated. Another array B(198x2) has in the first column 1:198 sorted in order and in the second column specific values for each row. I need to create an array C having the same size as A (300x1) however having the values from column 2 of array B where column 1 of B matches the value in array A. Example, if row 1 of array A is 90, i want row 1 in array C to have the value from column 2 of B where column 1 is 90 (row 90 in B).
Simplified example:
A [3 B[1 , 0.25 C[0.66
3 2 , 0.5 0.66
nan] 3 , 0.66 nan]
4 , 0.76]

 採用された回答

Voss
Voss 2022 年 6 月 16 日

0 投票

A = [3; 3; NaN];
B = [1 0.25; 2 0.5; 3 0.66; 4 0.76];
C = NaN(size(A));
[ism,idx] = ismember(A,B(:,1));
C(ism) = B(idx(ism),2);
disp(C);
0.6600 0.6600 NaN

2 件のコメント

Ziad Sari El Dine
Ziad Sari El Dine 2022 年 6 月 16 日
Perfect, thanks.
Voss
Voss 2022 年 6 月 16 日
You're welcome!

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeMatrix Indexing についてさらに検索

製品

リリース

R2018a

質問済み:

2022 年 6 月 16 日

コメント済み:

2022 年 6 月 16 日

Community Treasure Hunt

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

Start Hunting!

Translated by