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

Matlab: Undefined function 'eq' for input arguments of type 'cell'

此代码:

if (prefixTree(1,4).prefixTree2(:,2)=='2')
    unique(prefixTree(1,4).prefixTree2(:,3))
end

returns 这个错误:

Undefined function 'eq' for input arguments of type 'cell'.

为什么?

错误暗示 prefixTree(1,4).prefixTree2(:,2) 是元胞数组。您可以使用 prefixTree(1,4).prefixTree2{:,2} 访问第二列的各个元素。此外,冒号运算符暗示 prefixTree(1,4).prefixTree2(:,2) 中有多个元素,但您正在尝试进行标量比较。最后,您要与 char'2' 与数字 2 相对)进行比较,因此最好使用 string functions. You can use strcmp 检查单元格的每个元素:

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

然后使用 any or all 到 return 标量作为您的 if 语句:

if all(strcmp(prefixTree(1,4).prefixTree2(:,2),'2'))
    ...
end