string - 在 MATLAB 中计算字符串单元格

标签 string matlab matrix

我有,

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

results =
           A
           A
           C
           .
           .
           B

结果是一个1000*1 char

我想将标签结果进行比较并获得一个逻辑数组。

我终于发现了,

n = cellstr(results);
m = 'A';
strcmp(n,m)

可以,但我想循环执行,所以我不能使用 m = 'A';,它应该是 m = labels(1); ,这是行不通的。

最佳答案

使用ismember像这样(在您的情况下,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

这可能有助于澄清输出:

>> v(lia)

ans = 

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

>> labels(locb(lia))

ans = 

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

在其他作品中,find(lia)v 中也存在于 labels 中的字符的索引,并且 locb(lia) 给出这些元素的 labels 索引。

关于string - 在 MATLAB 中计算字符串单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26454428/

相关文章:

matlab - 在一行中将两个值从一个 Matlab 函数传递给另一个

c++ - 平均点c++周围点数组的均匀缩放

android - 在Android Studio中,如何使用GridView显示一个矩阵的Text Boxes?

C - 确定字符/字符串的字母顺序

javascript - 如何在 Java 脚本中查找和计算字符串中的元音并以数组形式返回它们?

string - 有一种方法可以生成某种文本的哈希值以进行比较吗?

c - 将int映射到float?

matlab - 使用Matlab在正方形内均匀分布相同大小的圆圈

python - 在 Python 中初始化矩阵?

Java 将匹配项分配给变量