分类数据相关matlab

时间:2016-03-28 19:56:24

标签: matlab

我有一个分类和数字数据的单元格。我想将NUTRIENT转换为分类数据,以便在两者之间找到AIR READINGS和SETTLE PLATE READINGS之间的相关性。

我尝试转换为矩阵,然后尝试转换为分类:

A=cell2mat(Air(:,3));
categorical(A)
  

使用分类的错误
  创建Abstract类的实例
  不允许“分类”。

任何明显的原因导致这些不起作用?

  'AIR READINGS'    []  []  []
    'PHASE' 'SITE'  'NUTRIENT'  '(M)SA'
    1   1   'SG'    'NO'
    1   2   'SG'    'NO'
    1   3   'MG'    'NO'
    1   4   'SG'    'NO'
    2   1   'LG'    'NO'
    2   2   'LG'    'NO'
    2   3   'MG'    'MSSA'
    2   4   'LG'    'MSSA'
    3   1   'SG'    'NO'
    3   2   'LG'    'NO'

'SETTLE PLATE READINGS' []  []  []
'PHASE' 'SITE'  'NUTRIENT'  '(M)SA'
1   1   'SG'    'NO'
1   2   'SG'    'NO'
1   3   'SG'    'NO'
1   4   'SG'    'NO'
2   1   'SG'    'NO'
2   2   'LG'    'NO'
2   3   'MG'    'NO'
2   4   'LG'    'NO'
3   1   'SG'    'NO'
3   2   'NG'    'NO'
3   3   'SG'    'NO'

修改

我正在从excel文件中导入这些数据,但看起来它正在为大单元格内的每个单独条目创建单元格。例如,如果我键入A {2,3},我会得到SG。这不对吗?

1 个答案:

答案 0 :(得分:2)

如果您有一个单元格,则无需转换:

NUTRIENT = {'NO' 'NO' 'NO' 'NO' 'NO' 'NO' 'MSSA' 'MSSA' 'NO'}
NUTRIENT_cat =  categorical(NUTRIENT)
NUTRIENT_dummy = dummyvar(NUTRIENT_cat')
  

NUTRIENT =

'NO'    'NO'    'NO'    'NO'    'NO'    'NO'    'MSSA'    'MSSA'    'NO'
     

NUTRIENT_cat =

 NO      NO      NO      NO      NO      NO      MSSA      MSSA      NO 
     

NUTRIENT_dummy =

 0     1
 0     1
 0     1
 0     1
 0     1
 0     1
 1     0
 1     0
 0     1

您的类别是:

categories(categories(NUTRIENT_cat))
  

ans =

'MSSA'
'NO'