0

2列のテーブルがあります。列 1 には文字列情報があり、列 2 には論理インデックスがあります。

%% Tables and their use

T={'A2P3';'A2P3';'A2P3';'A2P3 with (extra1)';'A2P3 with (extra1) and (extra 2)';'A2P3 with (extra1)';'B2P3';'B2P3';'B2P3';'B2P3 with (extra 1)';'A2P3'};
a={1 1 0 1 1 0 1 1 0 1 1 }

T(:,2)=num2cell(1);
T(3,2)=num2cell(0);
T(6,2)=num2cell(0);
T(9,2)=num2cell(0);

T=table(T(:,1),T(:,2));

class(T.Var1);
class(T.Var2);

T.Var1=categorical(T.Var1)
T.Var2=cell2mat(T.Var2)

class(T.Var1);
class(T.Var2);

if T.Var1=='A2P3' & T.Var2==1
    disp 'go on'
else
    disp 'change something'
end

更新:

  • ワークスペースをコード形式にコピーする方法がわかり次第、このセクションを更新します

** まだその方法がわかりませんが、これで終わりです

*** テーブルの操作が諸刃の剣である理由 (それでもクール): テーブル内のクラスを if else コンストラクトで参照するには、非常に注意する必要があります。ここでは、2 つの列をカテゴリカルに変換し、それを機能させるためにセルから倍増する...

私のデータは次のようになります。

http://imgur.com/H2exXKO

私はこれが欲しい:

if T.Var1=='A2P3*************************' & T.Var2==1
    disp 'go on'
else
    disp 'change something'
end

私はなんとかmatlabに自分のやりたいように指示することができましたが、この投稿の要点は次のとおりです。文字列の長さが可変である文字列のA2P3の後に来るものを無視するようにmatlabに指示するにはどうすればよいですか? そうしないと、A2P3 (および B2P3 など) に残されたすべての文字列情報を調べるだけで非常に面倒になるからです。

それ、どうやったら出来るの?

4

2 に答える 2