Matlab错误 - "输入必须是字符串的单元格数组" ...如何从数字单元格中获取唯一值... ...基线具有混合值

时间:2015-11-25 14:52:45

标签: matlab

这是我的代码:

A={2,'small','low','unacc';2,'small','med','unacc';2,'small','high','unacc';4,'big','low','unacc';4,'big','high','acc';'more','big','med','acc';'more','big','high','vgood';4,'med','med','acc'};

我想从上面的矩阵

的第一列中获取所有唯一值

uniques(A(:,1))正在提供错误

1 个答案:

答案 0 :(得分:1)

正如@excaza所说,你首先需要改变双值字符串

A={2,'small','low','unacc';2,'small','med','unacc';...
   2,'small','high','unacc';4,'big','low','unacc';...
   4,'big','high','acc'; 'more','big','med','acc';...
   'more','big','high','vgood';4,'med','med','acc'};

A_full_string = cellfun(@(x) num2str(x), A, 'UniformOutput',0);

基本上,num2str将数字或字符串作为输入,并将此值作为字符串返回。 cellfun将函数应用于单元格数组的每个元素。

现在你的所有值都是字符串值:

unique(A_full_string(:,1))

ans = 

    '2'
    '4'
    'more'