Error -Index exceeds matrix dimensions.

I get error ,please tell how to rectify it,i have used 100x4 for training and rest for testing, even though i get error
clc
clear all
load fisheriris
groups = ismember(species,'setosa');
k=10;
groups =groups(1:100,:);
mt=meas(1:100,:);
mte=meas(101:end,:);
cvFolds = crossvalind('Kfold', groups, k);
cp = classperf(groups);
for i = 1:k
testIdx = (cvFolds == i);
trainIdx = ~testIdx;
svmModel = svmtrain(mt(trainIdx,:), groups(trainIdx), ...
'Autoscale',true, 'Showplot',false, 'Method','QP', ...
'BoxConstraint',2e-1, 'Kernel_Function','rbf', 'RBF_Sigma',1);
pred = svmclassify(svmModel, mte(testIdx,:), 'Showplot',false);
cp = classperf(cp, pred, testIdx);
end

3 comentarios

Walter Roberson
Walter Roberson el 10 de En. de 2013
Usually we can debug faster when the person tells us which line the error is occuring on.
Index exceeds matrix dimensions.
Error in ==> Untitl at 22 pred = svmclassify(svmModel, mte(testIdx,:), 'Showplot',false);
Jan
Jan el 12 de En. de 2013

Iniciar sesión para comentar.

Respuestas (1)

Walter Roberson
Walter Roberson el 10 de En. de 2013

0 votos

Your cvFolds is constructed from groups, which is rows 1:100, but you use an index derived from that (testIdx) to index mte which is rows 101:end and so might be smaller.

3 comentarios

nkumar
nkumar el 12 de En. de 2013
So how to rectify it walter
Jan
Jan el 12 de En. de 2013
How could we know, what you exactly want to achieve?
nkumar
nkumar el 12 de En. de 2013
i want to train the data with 100 data ant test the remaining

Iniciar sesión para comentar.

Etiquetas

Preguntada:

el 10 de En. de 2013

Community Treasure Hunt

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

Start Hunting!

Translated by