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(或任何其他数字)之前和之后加上,然后它也被视为字符串。