Matlab code error - matlab code error - Subscript indices must either be real positive integers or logicals

조회 수: 8 (최근 30일)
I am getting an error in a matlab code...
Here is my matlab code....
a = 0;
b = 1000;
ftype ='function estimation';
y1 = [];
y2 = [];
y3 = [];
y6 = [];
p=a+(b-a)*lhsdesign(100,2);
s = length(p(:,1));
ydata = -log(ydata);
ytest = -log(ytest);
for k = 1:10
for n = 1:s
gam = p(n,1);
sig2 = p(n,2);
[alpha1,b1] = trainlssvm({xdata,ydata,ftype,gam,sig2,'RBF_kernel'});
tic
ysvm = simlssvm({xdata,ydata,ftype,gam,sig2,'RBF_kernel','preprocess'},{alpha1,b1},xtest);
toc
y4 = toc;
A = ysvm-ytest;
y5 = (sum(A.*A))/5000;
*y6 = corr(ytest,ysvm);*
y4 = [y1; y4];
y5 = [y2; y5];
y6 = [y3; y6];
y1 = y4;
y2 = y5;
y3 = y6;
end
gam = p(:,1);
sig2 = p(:,2);
time = y4;
mse = y5;
corr = y6;
xyz = [gam sig2 time mse corr];
xyz = sortrows(xyz,4);
xyz = xyz(1,:);
gam = xyz(1,1);
sig2 = xyz(1,2);
time = xyz(1,3);
mse = xyz(1,4);
corr = xyz(1,5);
if (mse <= 0.00001)
exit;
else
mse = mse;
end
if (gam <= 0)
gam = 1000;
else
gam = gam;
end
mu = [gam sig2];
SIGMA = [0.1 0; 0 0.1];
p = mvnrnd(mu,SIGMA,100);
s = length(p(:,1));
y1 = [];
y2 = [];
y3 = [];
end
I am getting the error in line
y6 = corr(ytest,ysvm)
Please help...

채택된 답변

Mickaël Tits
Mickaël Tits 2014년 6월 13일
Actually the problem is simply that you used "corr" as the name of a variable, so when you type
y6 = corr(ytest,ysvm)
you don't really call the function, but look in your variable corr at indices ytest and ysvm (that a probably not integers, so the error).

추가 답변 (1개)

Walter Roberson
Walter Roberson 2013년 1월 16일
Please use
which corr
to verify that there is a corr() routine. corr() is part of the Statistics Toolbox, not part of basic MATLAB.

카테고리

Help CenterFile Exchange에서 Psychology에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by