【发布时间】:2014-04-21 10:02:02
【问题描述】:
我有一张有 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 会非常累人。
我该怎么做?
【问题讨论】:
-
我们可以假设一个有 2 列的元胞数组吗?
-
我可以,但这会让我更难将它转换回我原来的表结构。你的建议会是什么样子?我对各种长度的通配符特别感兴趣,可以说“abc 在 abc11one 中很重要”。所以如果 abc 在第一部分,它已经可以了。
-
用于在表格中查找文本我使用分类,但我很好奇你在这种情况下实现通配符。
-
在您上传的屏幕截图中,您只有一列。
-
问题是我正在运行一个持续数小时的脚本,并且想快速发布最重要的信息,因此图片中没有 1 和 0。对此我很抱歉,但我可以在明天发布它的更新。此外,如果您告诉我如何从环境中提取嵌套结构并将它们放置在网络中,这将有所帮助。我听说过两种方法,一种是我没有的 2014a 的内置功能,另一种是我不理解的长脚本。