complex numbers

13 ビュー (過去 30 日間)
christopher
christopher 2011 年 5 月 19 日
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)

回答 (2 件)

Arnaud Miege
Arnaud Miege 2011 年 5 月 19 日
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 件のコメント
Arnaud Miege
Arnaud Miege 2011 年 5 月 19 日
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.

サインインしてコメントする。


Daniel Shub
Daniel Shub 2011 年 5 月 19 日
??? 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.

カテゴリ

Help Center および File ExchangeMatched Filter and Ambiguity Function についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by