how to ignore interp1 method if there is no data in extrated area.

2 views (last 30 days)
Hi
I am extracting 10 database from certain big area data and putting all 10 database in one graph for summing y values. For this I am using interp1 method to put all 10 database in one graph.
So my question is how I deal with interp1 when I have no data in extracted area. It says I need at least 2 point to use interp1 command. Is there any way to give command if my data points 0 or 1 just ignore it or something like this. The thing is I am picking random 10 areas to extract databases and every time I get different points in extracted areas.
% input data [NUMERIC,TXT,RAW]=XLSREAD('sihex.xlsx'); L=xlsread('damL.xlsx'); %%%%%% latitude a = 44; b = 47.5; r = (b-a).*rand(10,1) + a;
%%%%%%% longitude
c = 6.5; d = 7.5; k = (d-c).*rand(10,1) +c;
x=NUMERIC(:,5); y=NUMERIC(:,4); Mag=NUMERIC(:,9);
for iii=1:length(TXT); date_str(iii,:)=TXT(iii,2); end
date_num=datenum(date_str,'dd/mm/yyyy'); test_data11=datenum('01/01/1959','dd/mm/yyyy'); test_data12=datenum('01/01/1979','dd/mm/yyyy'); test_data21=datenum('01/01/1960','dd/mm/yyyy'); test_data22=datenum('01/01/1980','dd/mm/yyyy'); test_data31=datenum('01/01/1961','dd/mm/yyyy'); test_data32=datenum('01/01/1981','dd/mm/yyyy'); test_data41=datenum('01/01/1961','dd/mm/yyyy'); test_data42=datenum('01/01/1981','dd/mm/yyyy'); test_data51=datenum('01/01/1962','dd/mm/yyyy'); test_data52=datenum('01/01/1982','dd/mm/yyyy'); test_data61=datenum('01/01/1965','dd/mm/yyyy'); test_data62=datenum('01/01/1985','dd/mm/yyyy'); test_data71=datenum('01/01/1966','dd/mm/yyyy'); test_data72=datenum('01/01/1986','dd/mm/yyyy'); test_data81=datenum('01/01/1968','dd/mm/yyyy'); test_data82=datenum('01/01/1988','dd/mm/yyyy'); test_data91=datenum('01/01/1968','dd/mm/yyyy'); test_data92=datenum('01/01/1988','dd/mm/yyyy'); test_data101=datenum('01/01/1968','dd/mm/yyyy'); test_data102=datenum('01/01/1988','dd/mm/yyyy');
condition11=(Mag >= 2.5 & date_num > test_data11 & date_num < test_data12 & x > k(1,1)-L(1,1) & x < k(1,1)+L(1,1) & y > r(1,1)-L(1,1) & y < r(1,1)+L(1,1)); g11=ones(size(date_num(condition11)));
condition21=(Mag >= 2.5 & date_num > test_data21 & date_num < test_data22 & x > k(2,1)-L(2,1) & x < k(2,1)+L(2,1) & y > r(2,1)-L(2,1) & y < r(2,1)+L(2,1)); g21=ones(size(date_num(condition21)));
condition31=(Mag >= 2.5 & date_num > test_data31 & date_num < test_data32 & x > k(3,1)-L(3,1) & x < k(3,1)+L(3,1) & y > r(3,1)-L(3,1) & y < r(3,1)+L(3,1)); g31=ones(size(date_num(condition31)));
condition41=(Mag >= 2.5 & date_num > test_data41 & date_num < test_data42 & x > k(4,1)-L(4,1) & x < k(4,1)+L(4,1) & y > r(4,1)-L(4,1) & y < r(4,1)+L(4,1)); g41=ones(size(date_num(condition41)));
condition51=(Mag >= 2.5 & date_num > test_data51 & date_num < test_data52 & x > k(5,1)-L(5,1) & x <k(5,1)+L(5,1) & y > r(5,1)-L(5,1) & y < r(5,1)+L(5,1)); g51=ones(size(date_num(condition51)));
condition61=(Mag >= 2.5 & date_num > test_data61 & date_num < test_data62 & x > k(6,1)-L(6,1) & x < k(6,1)+L(6,1) & y > r(6,1)-L(6,1) & y < r(6,1)+L(6,1)); g61=ones(size(date_num(condition61)));
condition71=(Mag >= 2.5 & date_num > test_data71 & date_num < test_data72 & x > k(7,1)-L(7,1) & x < k(7,1)+L(7,1) & y > r(7,1)-L(7,1) & y < r(7,1)+L(7,1) ); g71=ones(size(date_num(condition71)));
condition81=(Mag >= 2.5 & date_num > test_data81 & date_num < test_data82 & x > k(8,1)-L(8,1) & x < k(8,1)+L(8,1) & y > r(8,1)-L(8,1) & y < r(8,1)+L(8,1)); g81=ones(size(date_num(condition81)));
condition91=(Mag >= 2.5 & date_num > test_data91 & date_num < test_data92 & x > k(9,1)-L(9,1) & x < k(9,1)+L(9,1) & y > r(9,1)-L(9,1) & y < r(9,1)+L(9,1)); g91=ones(size(date_num(condition91)));
condition101=(Mag >= 2.5 & date_num > test_data101 & date_num < test_data102 & x > k(10,1)-L(10,1) & x < k(10,1)+L(10,1) & y > r(10,1)-L(10,1) & y < r(10,1)+L(10,1)); g101=ones(size(date_num(condition101)));
all_times = unique([date_num11; date_num21; date_num31; date_num41;date_num51;date_num61;date_num71;date_num81;date_num91;date_num101;]); P11=date_num11; uniq = [true; diff(P11) ~= 0]; first_projected = interp1(P11(uniq), g11(uniq), all_times); P21=date_num21; uniq = [true; diff(P21) ~= 0]; second_projected = interp1(P21(uniq), g21(uniq), all_times); P31=date_num31; uniq = [true; diff(P31) ~= 0]; third_projected = interp1(P31(uniq), g31(uniq), all_times); P41=date_num41; uniq = [true; diff(P41) ~= 0]; forth_projected = interp1(P41(uniq), g41(uniq), all_times); P51=date_num51; uniq = [true; diff(P51) ~= 0]; fifth_projected = interp1(P51(uniq), g51(uniq), all_times); P61=date_num61; uniq = [true; diff(P61) ~= 0]; six_projected = interp1(P61(uniq), g61(uniq), all_times); P71=date_num71; uniq = [true; diff(P71) ~= 0]; seven_projected = interp1(P71(uniq), g71(uniq), all_times); P81=date_num81; uniq = [true; diff(P81) ~= 0]; eigth_projected = interp1(P81(uniq), g81(uniq), all_times); P91=date_num91; uniq = [true; diff(P91) ~= 0]; ninth_projected = interp1(P91(uniq), g91(uniq), all_times); P101=date_num101; uniq = [true; diff(P101) ~= 0]; ten_projected = interp1(P101(uniq), g101(uniq), all_times);
first_projected(isnan(first_projected)) = 0; second_projected(isnan(second_projected)) = 0; third_projected(isnan(third_projected)) = 0; forth_projected(isnan(forth_projected)) = 0; fifth_projected(isnan(fifth_projected)) = 0; six_projected(isnan(six_projected)) = 0; seven_projected(isnan(seven_projected))=0; eigth_projected(isnan(eigth_projected)) = 0; ninth_projected(isnan(ninth_projected)) = 0; ten_projected(isnan(ten_projected)) = 0;
data_total = first_projected + second_projected+third_projected+forth_projected+fifth_projected+six_projected+seven_projected+eight_projected+ninth_projected+ten_projected; figure; plot(all_times,data_total); hold on; Thanks!

Accepted Answer

Walter Roberson
Walter Roberson on 5 Feb 2016
You deal with it by looking at length() of your proposed input before the call and making a decision about what you want the result to be if you have 0 or 1 points. This is not something that interp1() can handle for you.
  1 Comment
davit petraasya
davit petraasya on 5 Feb 2016
Hi Walter. Thanks for you concern again!!! Is there any other function to deal with the problem instead of interp1()? Thank you!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!