Matlab-为什么ismember不工作?

Matlab-为什么ismember不工作?,matlab,cell-array,Matlab,Cell Array,我有一个不同且冗余的公司名称的细胞载体。还有一份有趣的公司名单。我试图找出,在大矩阵中,有趣的公司出现在哪里。我对所有的外表都感兴趣。 由于某种原因,我的代码不起作用。ismember始终返回一个错误 Comps = Data0(:,7); for i = 1: length(relCompQ) comp = relCompQ{i,1}; c(:,i) = find(ismember(Comps,comp)); end 错误: 使用cell/ismember>CellIsMem

我有一个不同且冗余的公司名称的细胞载体。还有一份有趣的公司名单。我试图找出,在大矩阵中,有趣的公司出现在哪里。我对所有的外表都感兴趣。 由于某种原因,我的代码不起作用。ismember始终返回一个错误

Comps = Data0(:,7);
for i = 1: length(relCompQ)
    comp = relCompQ{i,1};
    c(:,i) = find(ismember(Comps,comp));
end
错误:

使用cell/ismember>CellIsMember2012 A第192行输入A时出错 类单元格和类char的输入B必须是字符串的单元格数组, 除非一个是字符串

单元格/ismember第56行出错

[varargout{1:max1,nargout}]=cellismember2012aa,B

这两个向量的值都像:“耐克”、“阿迪达斯”、“宝马”等

类cell的输入A和类char的输入B必须是字符串的单元格数组,除非其中一个是字符串

这意味着单元格中的每个条目都必须是字符串,在本例中不是。如果您的单元格数组包含数值,甚至是空矩阵,则会出现此错误

例如,这是字符串的精细单元数组和一个字符

ismember({'b','c'},'b');
这不是:

ismember({'b',[1 2]},'b');
ismember({'b',[]},'b');
ismember({'b',NaN},'b');
最有可能意外混入单元格数组的可能是空矩阵。在这些情况下,如果error是我们的朋友,我总是建议使用调试工具dbstop来仔细检查到底发生了什么。你认为变量应该是什么或包含什么,它实际上包含什么,并不总是一回事


如果它确实包含空值,请参阅以了解如何处理它。

您会遇到什么错误?定义您的变量是什么;最好包括一个小例子。您发布的代码在不知道已完成的情况下无法理解:错误使用cell/ismember>cellismember2012 A第192行类cell的输入A和类char的输入B必须是字符串的单元格数组,除非其中一个是字符串。cell/ismember行56中的错误[varargout{1:max1,nargout}]=cellismember2012aa,B;这两个向量的值都像:“耐克”、“阿迪达斯”、“宝马”等。