complex numbers

13 vues (au cours des 30 derniers jours)
christopher
christopher le 19 Mai 2011
Hello,
Iam trying to write a code in shannon fano coding, the M is for representing the probability.This code line is giving me error.So hw do i rectify the error, many thanks. M=zeros(len,len) M=M-1 if (M(j,i)==0|M(j,i)==1)
??? Subscript indices must either be real positive integers or logicals.
Error in ==> p_main at 14 if (M(j,i)==0|M(j,i)==1)

Réponses (2)

Arnaud Miege
Arnaud Miege le 19 Mai 2011
You probably want:
if (M(j,i)==0 || M(i,j)==1)
However, I would not recommend testing directly for equality if you're using double data types. Here's why:
Instead compare the abs of the difference to some small tolerance value.
HTH,
Arnaud
  1 commentaire
Arnaud Miege
Arnaud Miege le 19 Mai 2011
As Daniel pointed out, it's also likely that your indices i and j are out of bounds. It would help if you posted the code.

Connectez-vous pour commenter.


Daniel Shub
Daniel Shub le 19 Mai 2011
??? Subscript indices must either be real positive integers or logicals.
means that i or j (your subscripts of M) is not a real positive integer. Many MATLAB users avoid using i and j as counters since they initialize as sqrt(-1). It is also possible that when you set i or j, you set it to 0.

Community Treasure Hunt

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

Start Hunting!

Translated by