Matlab:未定义的函数'eq'用于'cell'类型的输入参数

cat*_*cat 1 string matlab prefix cell-array

这段代码:

if (prefixTree(1,4).prefixTree2(:,2)=='2')
    unique(prefixTree(1,4).prefixTree2(:,3))
end
Run Code Online (Sandbox Code Playgroud)

返回此错误:

未定义的函数'eq'用于'cell'类型的输入参数.

为什么?

hor*_*ler 5

该错误意味着它prefixTree(1,4).prefixTree2(:,2)是一个单元阵列.您可以使用访问第二列的各个元素prefixTree(1,4).prefixTree2{:,2}.此外,冒号运算符意味着存在多个元素,prefixTree(1,4).prefixTree2(:,2)但您正在尝试进行标量比较.最后,你要比较a char('2'而不是数字2),因此最好使用字符串函数.您可以strcmp用来检查单元格的每个元素:

prefixTree(1,4).prefixTree2 = {'1' '2';'3' '2'}; % Example data
strcmp(prefixTree(1,4).prefixTree2(:,2),'2')
Run Code Online (Sandbox Code Playgroud)

然后使用anyall返回if语句的标量:

if all(strcmp(prefixTree(1,4).prefixTree2(:,2),'2'))
    ...
end
Run Code Online (Sandbox Code Playgroud)