0

次のようなデータセットがあります

5.7,2.9,4.2,1.3,Iris-versicolor
6.2,2.9,4.3,1.3,Iris-versicolor
5.1,2.5,3.0,1.1,Iris-versicolor
5.7,2.8,4.1,1.3,Iris-versicolor
6.3,3.3,6.0,2.5,Iris-virginica
5.8,2.7,5.1,1.9,Iris-virginica
7.1,3.0,5.9,2.1,Iris-virginica

そのデータセットの文字列値を次のような整数値に変換したい

5.7,2.9,4.2,1.3,0
6.2,2.9,4.3,1.3,0
5.1,2.5,3.0,1.1,0
5.7,2.8,4.1,1.3,0
6.3,3.3,6.0,2.5,1
5.8,2.7,5.1,1.9,1
7.1,3.0,5.9,2.1,1

したがって、Iris-versicolor は 0 になり、Iris-versicolor は 1 になります。

Matlab では実際的な提案ではどうすればよいでしょうか?

4

1 に答える 1

2

データがセル配列にある場合、つまり

data = {...
5.7,2.9,4.2,1.3,'Iris-versicolor'
6.2,2.9,4.3,1.3,'Iris-versicolor'
5.1,2.5,3.0,1.1,'Iris-versicolor'
5.7,2.8,4.1,1.3,'Iris-versicolor'
6.3,3.3,6.0,2.5,'Iris-virginica'
5.8,2.7,5.1,1.9,'Iris-virginica'
7.1,3.0,5.9,2.1,'Iris-virginica'};

次のように目的の出力を作成できます(1からgrp2idxカウントを開始するため、の出力から1を減算します(これは、Matlabを使用するときに採用する方法です))。

[cell2mat(data(:,1:end-1)),grp2idx(data(:,end))-1]

    5.7000    2.9000    4.2000    1.3000         0
    6.2000    2.9000    4.3000    1.3000         0
    5.1000    2.5000    3.0000    1.1000         0
    5.7000    2.8000    4.1000    1.3000         0
    6.3000    3.3000    6.0000    2.5000    1.0000
    5.8000    2.7000    5.1000    1.9000    1.0000
    7.1000    3.0000    5.9000    2.1000    1.0000
于 2012-10-17T22:08:44.373 に答える