MATLAB Answers

Can anyone tell me how to solve this error?

1 view (last 30 days)
anand rathod
anand rathod on 24 Jul 2020
Commented: anand rathod on 25 Jul 2020
clc;
clear ;
close all;
%%
load FA
F1 = Feature;
load NF
F2 = Feature;
xdata = [F1;F2];
group = cell(1,1);
for ii = 1:size(F1,1)
group{ii,1} = 'Fatigue';
end
for ii = 1:size(F2,1)
group{ii+size(F1,1),1} = 'Non-Fatigue';
end
svmStruct = fitcsvm(xdata,group,'OptimizeHyperparameters','auto','HyperparameterOptimizationOptions',struct('showplot',true));
% Testing
save svm svmStruct
load svm
for ii = 1:size(F1,1)
species = ClassificationSVM(svmStruct,F1(ii,:));
disp([ group{ii,1} ' = ' species]);
end
for ii = 1:size(F2,1)
species = ClassificationSVM(svmStruct,F2(ii,:));
disp([ group{ii+size(F1,1),1} ' = ' species]);
end
%%%%%%%%%%%%%%%
It runs for some time and gives error on classificationSVM.
Here Xdata is a 8x4 double. error says X should be a double or a single matrix. How to solve it and the other errors?

  5 Comments

Show 2 older comments
Walter Roberson
Walter Roberson on 24 Jul 2020
Why are you directly invoking the private ClassificationSVM.fit() instead of calling fitcsvm()? And you appear to be expecting the results to be species indicators but that is not what fit is for, and you would use predict() to use a trained classifier plus input data to estimate species.
Image Analyst
Image Analyst on 25 Jul 2020
If you need more help, attach FA.mat and NF.mat.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!