Subscript Error Plz help

Pk is a 1*5 , and LandaMean is 1*37 matrice
b=1
m=6
for k=1:(n-(2*b)-m+1);
Pk = LandaMean(k+1:k+m-1);
for i=k+1:k+m-1
if sum(abs(Pk(i)-LandaMean(k)))<= (2*s);
LandaU =(1/m)*sum(LandaMean(k:k+m-1));
break
else
end
end
end
But I get this error:
Subscript indices must either be real positive integers or logicals.
Error in TailDep (line 50)
if sum(abs(Pk(i)-LandaMean(k)))<= (2*s);
Thank you

1 件のコメント

Fred
Fred 2012 年 10 月 4 日
Thank you, I realized that I had used sum in other lines as a parameter so it was the making problem :)

サインインしてコメントする。

 採用された回答

Razvan
Razvan 2012 年 10 月 3 日

0 投票

Just look at line 50 and what vectors are there. Probably there is something like
vector(negative_number)
So check why the index is negative...

1 件のコメント

Fred
Fred 2012 年 10 月 3 日
Thank you

サインインしてコメントする。

その他の回答 (1 件)

Image Analyst
Image Analyst 2012 年 10 月 3 日
編集済み: Image Analyst 2012 年 10 月 3 日

0 投票

What is n and s? Whatever they are, they make either i or k negative or zero.
I guessed for n and s and ran this code and had no error whatsoever:
Pk = rand(1, 5);
LandaMean = rand(1, 37);
b=1;
m=6
n = 9 % Total guess
s = 10 % Total guess
for k=1:(n-(2*b)-m+1);
Pk = LandaMean(k+1:k+m-1);
for i=k+1:k+m-1
if sum(abs(Pk(i)-LandaMean(k)))<= (2*s);
LandaU =(1/m)*sum(LandaMean(k:k+m-1));
break;
else
end
end
end
Do you know how to step through code with the debugger to inspect variables?

3 件のコメント

Fred
Fred 2012 年 10 月 3 日
Thanks, in my workspace n=40, s=0.1818
Fred
Fred 2012 年 10 月 3 日
Actually I found where is the problem but I don't know what should I do? the inside of sum becomes around 0.15 and it assumes that 0.15 is an index for sum!! but sum is a function here!
Walter Roberson
Walter Roberson 2012 年 10 月 3 日
Are you sure that you did not accidentally create a variable with the name "sum" ? Check with
whos sum

サインインしてコメントする。

カテゴリ

製品

質問済み:

2012 年 10 月 3 日

Community Treasure Hunt

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

Start Hunting!

Translated by