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'