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 つの列をカテゴリカルに変換し、それを機能させるためにセルから倍増する...
私のデータは次のようになります。
私はこれが欲しい:
if T.Var1=='A2P3*************************' & T.Var2==1
disp 'go on'
else
disp 'change something'
end
私はなんとかmatlabに自分のやりたいように指示することができましたが、この投稿の要点は次のとおりです。文字列の長さが可変である文字列のA2P3の後に来るものを無視するようにmatlabに指示するにはどうすればよいですか? そうしないと、A2P3 (および B2P3 など) に残されたすべての文字列情報を調べるだけで非常に面倒になるからです。
それ、どうやったら出来るの?