how to compare non numerical values or character strings element-wise between a table and a one dimensional array ?
2 ビュー (過去 30 日間)
古いコメントを表示
IrisD = readtable('irisdata.csv');
classes = categorical(IrisD{:,5});
Icats = categories(classes);
setosa = IrisD((IrisD(:,5)==Icats(1)),:);
Ttest1 = setosa(1:40,:);
Ttrain1 = setosa(41:50,:);
versicolor = IrisD((IrisD(:,5)==Icats(2)),:);
Ttest2 = versicolor(1:40,:);
Ttrain2 = versicolor(41:50,:);
virginica = IrisD((IrisD(:,5)==Icats(3)),:);
Ttest3 = virginica(1:40,:);
Ttrain3 = virginica(41:50,:);
Ttest = [Ttest1; Ttest2; Ttest3];
Ttrain = [Ttrain1; Ttrain2; Ttrain3];
I am getting this error: Undefined operator '==' for input arguments of type 'table'.
I am trying to split the Iris database into a training and testing dataset, with the first 40 values of each class being in the testing dataset and the remaining 10 for each class be in the training dataset.
6 件のコメント
Peter Perkins
2019 年 3 月 19 日
Apurva, IrisD{:,5} certainly will work.
But I suggest that you use names, and dot indexing, and ==. So you code becomes
setosa = IrisD(IrisD.Species == Icats(1),:)
or maybe even
setosa = IrisD(IrisD.Species == 'setosa',:)
Isn't that nicer?
採用された回答
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Time Series Objects についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!