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);

 채택된 답변

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

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..

댓글을 달려면 로그인하십시오.

추가 답변 (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

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

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by