如何在单元格数组中查找字符串

时间:2014-04-27 21:48:48

标签: matlab

我有一个像这样的单元格数组:

'10 Hz: Time_abs'
<1x2 cell>
<1x2 cell>
<1x2 cell>
<1x2 cell>
<1x2 cell>
<1x2 cell>
<1x2 cell>
'10 Hz: Time_abs'
<1x2 cell>
<1x2 cell>
<1x2 cell>

起初我需要找到哪些行有10赫兹:Time_abs&#39;然后删除相应的行。 我不能使用strcmp,因为其他行是&lt; 1x2 cell&gt;。

任何人都可以帮助我,我真的很感激。

最好的, 纳维德

2 个答案:

答案 0 :(得分:2)

您可以逐个单元格迭代并使用isstr函数检查字符串,例如:

A{1} = 'sdadfadf';
A{2} = 23;
A{3} = [1,2,3,4];
A{4} = 0;


for ii=1:length(A)
isstr(A{ii})
end

ans =  1
ans = 0
ans = 0
ans = 0

另一种解决方案是使用ischar函数:

C{1,1} = magic(5);
C{1,2} = 'John Dump';
C{1,3} = 1 + 1i     
C{1,4} = 0.0025

for k = 1:4
x(k) = ischar(C{1,k});
end

x

x =

     0     1     0    0

答案 1 :(得分:0)

在一行中:

C{1,1} = magic(5);
C{1,2} = 'John Dump';
C{1,3} = 1 + 1i     
C{1,4} = 0.0025

x = cellfun(@ischar, C)

x =

     0     1     0    0