我有一个有 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 构造中引用它,在这里我必须将两列转换为分类和从细胞中翻倍以使其工作......
这是我的数据的样子:
我想要这个:
if T.Var1=='A2P3*************************' & T.Var2==1
disp 'go on'
else
disp 'change something'
end
我设法告诉 matlab 按照我的意愿去做,但这篇文章的重点是:我如何告诉 matlab 忽略字符串中 A2P3 之后的内容,其中字符串长度是可变的?因为否则查找留在 A2P3(以及 B2P3 等)上的每一条字符串信息只是为了说 thay 会非常累人。
我怎么做?