从单元格数组中查找字符串并创建新的单元格数组

时间:2016-11-14 06:34:34

标签: string matlab cell-array

我想从单元格数组(m x n)中找到字符串,并使用matlab在新单元格数组(m x n)中添加这些标识的字符串,例如:

Human(i,1)={0
1
34
eyes_two
55
33
ears_two
nose_one
mouth_one
631
49
Tounge_one}

我想删除数字,只有字符串

New_Human(i,1)={eyes_two
ears_two
nose_one
mouth_one
tounge_one}

1 个答案:

答案 0 :(得分:1)

根据您的评论,您的所有数据都会被存储为字符串。在这种情况下,您可以使用以下方法删除表示有效数字的所有字符串。

H = {'0'; '1'; '34'; 'eyes_two'; '55'; '33'; 'ears_two'; 'nose_one'; 'mouth_one'; '631'; '49'; 'Tounge_one'};

idx = cellfun(@(x)isnan(str2double(x)), H);
Hstr = H(idx)

输出

Hstr = 
    'eyes_two'
    'ears_two'
    'nose_one'
    'mouth_one'
    'Tounge_one'

代码确定哪些字符串不代表有效的数值。这是通过检查str2double函数是否在每个字符串上返回NaN结果来完成的。如果您想了解有关其工作原理的更多信息,建议您阅读cellfun上的文档。