String MATLAB中字符串单元的计算

String MATLAB中字符串单元的计算,string,matlab,matrix,String,Matlab,Matrix,我有 result是1000*1字符 我想将标签与结果进行比较,得到一个逻辑数组 我终于发现, labels = {'A' , 'B' , 'C'}; results = A A C . . B 工作,但我想在循环中完成,所以我不能有m='a',它应该是m=labels(1),这将不起作用。尝试以下方法: n = cellstr(results); m = 'A

我有

result
1000*1
字符

我想将
标签
结果
进行比较,得到一个逻辑数组

我终于发现,

labels = {'A' , 'B' , 'C'};

results =
           A
           A
           C
           .
           .
           B

工作,但我想在循环中完成,所以我不能有
m='a',它应该是
m=labels(1),这将不起作用。

尝试以下方法:

n = cellstr(results);
m = 'A';
strcmp(n,m)
这样使用(
v
在您的情况下类似于
cellstr(result)
):

这可能有助于澄清产出:

>> labels = {'A' , 'B' , 'C'};
>> v = cellstr(char(randi(15,20,1)+64)).' %' uni. random sample of letters from A to O

v = 

  Columns 1 through 10

    'M'    'D'    'I'    'J'    'A'    'J'    'F'    'A'    'H'    'C'

  Columns 11 through 20

    'B'    'D'    'C'    'C'    'A'    'J'    'E'    'I'    'K'    'H'

>> [lia,locb] = ismember(v,labels)

lia =

  Columns 1 through 12

     0     0     0     0     1     0     0     1     0     1     1     0

  Columns 13 through 20

     1     1     1     0     0     0     0     0


locb =

  Columns 1 through 12

     0     0     0     0     1     0     0     1     0     3     2     0

  Columns 13 through 20

     3     3     1     0     0     0     0     0

在其他作品中,
find(lia)
v
中也存在于
labels
中的字符的索引,而
locb(lia)
为这些元素提供了
labels
中的索引。

为什么不使用
ismember
函数?@NKN,我试过了,但我想不出来。你能举一个以上数组的例子吗?
>> labels = {'A' , 'B' , 'C'};
>> v = cellstr(char(randi(15,20,1)+64)).' %' uni. random sample of letters from A to O

v = 

  Columns 1 through 10

    'M'    'D'    'I'    'J'    'A'    'J'    'F'    'A'    'H'    'C'

  Columns 11 through 20

    'B'    'D'    'C'    'C'    'A'    'J'    'E'    'I'    'K'    'H'

>> [lia,locb] = ismember(v,labels)

lia =

  Columns 1 through 12

     0     0     0     0     1     0     0     1     0     1     1     0

  Columns 13 through 20

     1     1     1     0     0     0     0     0


locb =

  Columns 1 through 12

     0     0     0     0     1     0     0     1     0     3     2     0

  Columns 13 through 20

     3     3     1     0     0     0     0     0
>> v(lia)

ans = 

    'A'    'A'    'C'    'B'    'C'    'C'    'A'

>> labels(locb(lia))

ans = 

    'A'    'A'    'C'    'B'    'C'    'C'    'A'