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

时间:2016-01-12 15:23:28

标签: string matlab prefix cell-array

此代码:

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

返回此错误:

  

“cell”类型的输入参数的未定义函数“eq”。

为什么?

1 个答案:

答案 0 :(得分:5)

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

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

然后使用anyall返回if声明的标量:

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