行列のそれぞの要素に​マッチングするデータ​の検索方法

A を 10,000 行 × 100 列の行列とし、B を 100行 × 2列のテーブルとします。
Aの各要素について、Bの1列目にマッチングした場合のBの2列目を、Aの各要素ごとに並べた行列Cを求めるプログラムが作成したいです。
(例えば、C(1,1)は、A(1,1)とBの1列目がマッチングする場合のBの2列目の数値
     C(5,4)は、 A(5,4)とBの1列目がマッチングする場合のBの2列目の数値、)
for文であれば、上記の行列Cが作れるのですが、当該処理を何か所も使うにあたり、プログラムを高速化するため、配列計算により上記の計算ができないかと思ってますが、どのようなプログラムとすればよいか、教えていただけないでしょうか。

 採用された回答

syota papa
syota papa 2023 年 6 月 12 日

0 投票

%% 自己解決してしまったかもしれませんが、以下のようにすればよいかもしれません。
[~,rowWithElement] = ismember(A,B(:,1));
C = B(rowWithElement,2);

その他の回答 (0 件)

カテゴリ

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

製品

リリース

R2017b

質問済み:

2023 年 6 月 12 日

回答済み:

2023 年 6 月 12 日

Community Treasure Hunt

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

Start Hunting!