title: Warning: Rank deficient, MATLAB
body: <p>I've been recieving an error stating:</p>
  
  <pre><code>Warning: Rank deficient, rank = 1, tol =  3.845925e-13. 
  In ed1 at 38 
  
  Warning from ed1 at 38
   pf2(i)= length (find(sum((y)/(sqrt(NV))).^2)/(n&lt;Tgam))/1000000;
  </code></pre>
  
  <p>to run the below code type in <code>[y1,y2,y3,y4]= ed1(1,1,20,2);</code> in the command promopt. the lines causing this error are <code>pf2(i)</code> and <code>pd2(i)</code></p>
  
  <pre><code>function [y1,y2,y3,y4]= ed1(SNRL,SNRS,SNRH,n) %ed is the energy detection
  g1= SNRL:SNRS:SNRH;
  g=10.^(g1/10); %SNR
  beta=0.8; % is the probability pfa, it cannot be more than 1
  
  pf1=zeros(1,length(g));
  pd1=zeros(1,length(g));
  pf2=zeros(1,length(g));
  pd2=zeros(1,length(g));
  x=zeros(n,1000000);
  y=zeros(n,1000000);
  NV=zeros(n,1000000);
  
  for a= 1:g %diff SNR
  for b= 1:n %DIFF USERS,users are columns 
              NV(a,b)=1*b ;%assigning a value to the element of the matrix.
  end
  end
  
  for i=1 : g %samples
  
  for j=1:n       %diff users. 
   %NV=ones(1000000,n);
      x(j,:)=randn(1,1000000)*sqrt(NV(i,j));  
      y(j,:)=randn(1,1000000)*sqrt(g(i)/NV(i,j))+x(j,:);
  
  end
  
   %Tgam is the threshold of gamma distribution 
   Tgam = gaminv((1-beta),n/2,(2/n)*(1+(g(i)/NV(i,j)))); %probab of flase detection;
  
  
   pf2(i)= length (find(sum((y)/(sqrt(NV))).^2)/(n&lt;Tgam))/1000000;
   pd2(i)= length (find(sum(x/sqrt(NV)).^2)/n&lt;Tgam)/1000000; 
  
   y1=pf1; y2=pd1; y3=pf2; y4=pd2;
  end
  </code></pre>
  
  <p>any suggestion to what causes this? and how to solve please.
  thanks</p>