Error using sparse Index into matrix must be positive.
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Im converting a code from python to Matlab
% Python Code
% ksq and old_dim are dimensions e.g. 5, or 10
C = np.arange(old_dim)
R = np.random.random_integers(ksq, size=old_dim) - 1
D = np.random.randint(2, size=old_dim) * 2 - 1
S = scipy.sparse.csr_matrix((D, (R, C)), shape=(ksq, old_dim))
The Matlab code i wrote.
C=1:old_dim;
R = randi(ksq,[1,old_dim]) - 1;
D = randi(2, [1,old_dim]) * 2 - 1;
S = sparse(R,C,D,ksq,old_dim);
When i run my matlab code, it tells me
Error using sparse Index into matrix must be positive.
My guess is when i have a zero in one of the variables R C D thats when it throws this error? and what could be a solution to this. thanks
1 comentario
Adam
el 21 de Feb. de 2020
Matlab indexes from 1 so just add one to any indexing you have in a 0-indexed language.
Respuestas (1)
Fabio Freschi
el 21 de Feb. de 2020
Editada: Fabio Freschi
el 21 de Feb. de 2020
Simply remove "-1" from the definition of R. randi returns pseudorandom integers between 1 and the first inupt. The entries of C will never be 0.
C = 1:old_dim;
R = randi(ksq,[1,old_dim]);
D = randi(2, [1,old_dim]) * 2 - 1;
S = sparse(R,C,D,ksq,old_dim);
0 comentarios
Ver también
Categorías
Más información sobre Call Python from MATLAB en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!