Entering a vector in a function with if else statement
    5 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
Hi Matlab community.
I made this function that should sort out data that differs more than +/- 20 % giving it "NaN" if it does. If the previous measurement varied more than 20 % it should should not do so, which i tried with the command: "(sorted_data(i-1)==NaN) && (i>1)" but when I use the debugger it does not enter this statement even though it is true. How come it won't enter this? Thanks for the help!
Kind Regards
function sorted_data=sort_for_outliers(data)
sorted_data=zeros(length(data),1);
for i=1:length(data)
    if i==1
        sorted_data(i)=[data(i)];
      elseif (sorted_data(i-1)==NaN) && (i>1)
          sorted_data(i)=[data(i)];
      elseif data(i)>1.20.*data(i-1)
          sorted_data(i)=[NaN];
      elseif data(i)<0.80.*data(i-1)
          sorted_data(i)=[NaN];
      else
          sorted_data(i)=[data(i)];
      end
  end
  end
1 Commento
  Torsten
      
      
 il 12 Mar 2018
				At the beginning of your function, you set "sorted_data" to zero. Thus sorted_data(i-1) will not be NaN.
Best wishes
Torsten.
Vedere anche
Categorie
				Scopri di più su Shifting and Sorting Matrices in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


