【问题标题】:Find strings from an cell array and create a new cell array从元胞数组中查找字符串并创建一个新元胞数组
【发布时间】:2016-11-15 00:08:14
【问题描述】:

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

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}

【问题讨论】:

    标签: string matlab cell-array


    【解决方案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 上的文档。

    【讨论】:

    • 嗨@jodag,感谢您提出该方法,但出于某种原因,在我的脚本中,idx 将数字和字符(参数值)作为“1”,因此 Hstr 与 H 相同
    • @Mohammed Nadaf 我根据您的评论更新了答案。
    猜你喜欢
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 2011-02-07
    • 1970-01-01
    相关资源
    最近更新 更多