0

さまざまな組み合わせの4つの列(A、B、C、スコア)を持つexcel_1があります。3つの列(A、B、C)を持つ別のExcel_2があります。A、B、Cでスコアを調べてください。エクセルインデックスとマッチ機能を使ってみましたが、まだわかりません。コーディングしないと、1つずつ一致させるのが本当に面倒になります... Matlabでコードを書く方法を教えてもらえますか?

例:

excel_1
99 5 35 12
99 2 32 14
97 5 13 94
...

excel_2
97 5 13
99 2 32
...

コードを実行した後、

結果:

excel_2
97 5 13 94
99 2 32 14
...

どうもありがとう...

A = xlsread('excel_1.xlsx');
B = xlsread('excel_2.xlsx');

[~,J] = ismember(B,A(:,1:size(B,2)),'rows');
if any(J)
    result = A(J,:);
end

??? Subscript indices must either be real positive integers or logicals.

Error in ==> Untitled at 6
    result = A(J,:);    

解決しました。BとAの間に不可能に存在することはできません。

4

1 に答える 1

2

たぶんあなたはこれを試すことができます。

[~,J] = ismember(excel_2,excel_1(:,1:size(excel_2,2)),'rows');
if any(J)
   result = excel_1(J,:);
end

それで

result =

    97     5    13    94
    99     2    32    14
于 2012-06-30T07:36:27.183 に答える