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); how could index 0 not be a posiitive integer? :
2 次查看(过去 30 天)
显示 更早的评论
% Implementarea algoritmului Blum Micali
% pentru PRNG in Matlab
clear all; close all; clc;
p = input('Introduceti numarul prim p= ');
g = input('Introduceti numarul prim g= ');
Nr=p-1;
x=zeros(1, Nr);
for i=1:Nr
x(i)=mod(g^x(i-1), p);
end;
disp('Rezultatul este: ');
disp(x);
2 个评论
Steven Lord
2015-7-16
By the usual definition of "positive" as it relates to numbers, 0 is not positive since 0 > 0 returns false.
Numeric data used as indices in MATLAB must contain only real positive finite integer values. There is no such thing as x(0) [no zeroth element] when x is a numeric variable. [I'm ignoring logical indexing for purposes of this comment; that's different.]
Walter Roberson
2015-7-16
Duplicated by http://uk.mathworks.com/matlabcentral/answers/230110-see-i-have-this-error-in-my-code-saying-attempted-to-access-x-0-index-must-be-a-positive-int which also has answers
回答(1 个)
Azzi Abdelmalek
2015-7-16
编辑:Azzi Abdelmalek
2015-7-16
When i=1, you can't write x(i-1), because i-1=0. Matlab does not accept an index equal to 0
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!