MATLAB中异构单元数组中字符的逻辑索引

康斯坦丁

我有一个异类单元格数组,其中大多数包含数字,但只包含一列字符。我想确定那些字符列中的值等于某个字符串的行'X'我的数组看起来像这样:

array_name = { [0] [2] 'X' ; 
               [4] [1] 'X' ; 
               [9] [7] 'A' ; 
               [9] [1] 'X' ; 
               [4] [4] 'B'};

我的问题有两个:

(1)由于usingarray_name == 'X'不会返回在数值数组上使用时所期望的逻辑向量,我该怎么做?

(2)如何创建仅由满足字符列中的值等于的条件的那些行组成的新数组'X',这样我的输出将如下所示:

new_array = { [0] [2] 'X' ; 
              [4] [1] 'X' ; 
              [9] [1] 'X'};

我只对(1)感兴趣,因为我认为(2)是必要的。

任何提示,不胜感激!

丹尼尔

将第三列作为逗号分隔的列表并将其连接到数组,然后可以使用逻辑索引:

L=[array_name{:,3}]=='X'
new_array=array_name(L,:)

或者,您可以使用strcmpi可以处理多个字符的字符。

L=strcmpi(array_name(:,3),'X')
new_array=array_name(L,:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章