see, i have this error in my code saying: ??? Attempted to access x(0); index must be a positive integer or logical. Error in ==> abc at 14 x(i)=mod(g^x(i-1), p);

 Accepted Answer

You start the loop at i=1, but then try and index x(i-1), which is the same as x(0). MATLAB starts indexes at 1 (Mathematical indexing, not programmer indexing).
That is
x = [1 2 3 4];
x(1)
ans =
1
x(0)
Subscript indices must either be real
positive integers or logicals.

1 Comment

ok, I got it, thank you so much. how could I solve it? the thing is, that is the range this alg gives me in it's theory..

Sign in to comment.

More Answers (1)

You have x(i)=mod(g^x(i-1), p); . When "i" is 1, that is mod(g^x(1-1),p) which is mod(g^x(0),p) . However there is no element #0 of a vector.
You need to think more about your initial conditions, of what is to happen on the very first iteration.

2 Comments

Thank you very much. I understand now. I'll think more about it.
I suspect what you want is
x(1) = 1;
for i=2:Nr
x(i)=mod(g^x(i-1), p);
end

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!