Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab错误-“;输入必须是字符串的单元格数组“;。。。如何从数值单元格中获取唯一值..iff..矩阵是混合值_Matlab - Fatal编程技术网

Matlab错误-“;输入必须是字符串的单元格数组“;。。。如何从数值单元格中获取唯一值..iff..矩阵是混合值

Matlab错误-“;输入必须是字符串的单元格数组“;。。。如何从数值单元格中获取唯一值..iff..矩阵是混合值,matlab,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))给出错误正如@exca

这是我的密码:

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))
给出错误

正如@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);
基本上,将数字或字符串作为输入,并将该值作为字符串返回。 将函数应用于单元格数组的每个元素

现在,所有值都是字符串值:

unique(A_full_string(:,1))

ans = 

    '2'
    '4'
    'more'

A(:,1)
不是字符串的单元格数组。你也有双精度。那么如何从中获得唯一性呢。还有其他解决方案吗?只需在2(或任何其他数字)之前和之后加上,然后它也被视为字符串。