String 在matlab中的单元格中查找字符串(从表中)

String 在matlab中的单元格中查找字符串(从表中),string,matlab,find,cell,String,Matlab,Find,Cell,我想在单元格内找到一个字符串(从表中获取)的位置: A是我的桌子,B是牢房 我测试过: strncmp(A(1,8),B(:,1),1) 但它找不到位置。 我已经测试了许多命令,如: ismember、stratch、find(strcmp)、find(strcmpi)find(ismember)、strfind等。。。但他们都给我错误,主要是因为我的数据类型 所以请给我一个解决方案。您想要: 如果A是一个表,而B是一个单元格数组,则需要以这种方式进行索引: strfind(B{1}, A.

我想在单元格内找到一个字符串(从表中获取)的位置: A是我的桌子,B是牢房

我测试过:

strncmp(A(1,8),B(:,1),1)
但它找不到位置。 我已经测试了许多命令,如: ismember、stratch、find(strcmp)、find(strcmpi)find(ismember)、strfind等。。。但他们都给我错误,主要是因为我的数据类型

所以请给我一个解决方案。

您想要:


如果
A
是一个表,而
B
是一个单元格数组,则需要以这种方式进行索引:

strfind(B{1}, A.VarName{1});
例如:

>> A = cell2table({'cde'},'VariableNames',{'VarName'}); %// create A as table
>> B = {'0123abcdefgcde'}; %// create B as cell array of strings
>> strfind(B{1}, A.VarName{1})
ans =
     7    12

路易斯·门多的回答绝对正确,但我想补充一些基本信息


您的问题是,您尝试的所有函数(strfind,…)只适用于普通字符串,而不适用于单元格数组。在代码片段中索引
A
B
的方式仍然是一个单元格数组(维度为(1,1))。您需要使用花括号
{}
来“摆脱”单元格数组并获取containign字符串。Luis Mendo展示了如何做到这一点。

修改了Mathworks论坛的解决方案,用于处理字符串不规则的单列表

find(strcmp('mystring',mytable{:,:}))

将为您提供行号。

@BrianTompsett如果您打算在rambo burnination工作中大量编辑问题(您经常这样做),我建议您使用MSE上的休眠关闭帖子,而不是一篇有几票的多年休眠帖子。@AndrasDeak感谢您将另一篇元帖子提请我注意。
find(strcmp('mystring',mytable{:,:}))