Attempted to access Pe(7); index must be a positive integer or logical.
    3 views (last 30 days)
  
       Show older comments
    
I wrote this function but I get an error:
??? Attempted to access Pe(7); index must be a positive integer or logical.
Error in ==> prob3 at 56
        Pe(m)=(Pe(m)+error(j))/10000;
What should I do for it?
Pe=zeros(1,11);
x=zeros(1,10000);
y=zeros(1,10000);
z=zeros(1,10000);
error=zeros(1,10000);
for q=0:0.1:1
    for k=1:10000
        error(k)=0;
    end
      for i=1:10000
          if rand(1)<1/2
              x(i)=0;
              if rand(1)<q
                  y(i)=1;
                  if q<1/2
                      z(i)=1;
                  else
                      z(i)=0;
                  end
              else
                  y(i)=0;
                  if q>1/2
                      z(i)=1;
                  else
                      z(i)=0;
                  end
              end
          else 
              x(i)=1;
              if rand(1)<q
                  y(i)=1;
                  if q<1/2
                      z(i)=1;
                  else 
                      z(i)=0;
                  end
              else
                  y(i)=0;
                  if q>1/2
                      z(i)=1;
                  else 
                      z(i)=0;
                  end
              end
          end
          if x(i)==z(i)
              error(i)=error(i)+0;
          else
              error(i)=error(i)+1;
          end
      end
      m=(q./0.1)+1;
      for j=1:10000
          Pe(m)=(Pe(m)+error(j))/10000;
      end
  end
  plot(Pe,q);
0 Comments
Answers (1)
  Richard Brown
      
 on 9 Jul 2012
        Your problem is that q and hence m are floating point numbers, not integers. in this case the problem is that
m = 0.6 / 0.1 + 1
differs from 7 in the sixteenth decimal place, and hence can't be used to index. Either use
m = round(q / 0.1 + 1)
or, better, use integer indices in your loop, and compute q from them
0 Comments
See Also
Categories
				Find more on Creating and Concatenating Matrices in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
