Reshuffled stack data plot
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi
I am doing seismology plot. I have magnitudes(Y) and time(X). My magnitude changes from 1.1 till 4. Time in years 1969-2015.(3and 4-coloms in attached file)
I need to take all magnitudes bigger or equal 3 and look at how many points I have before and after 60 days from the Mag>=3 points. (all magnitudes should be taken in 120 days).
I tryed to solve it. I think it has 25 Magnitude >= 3 points and looked at how many magnitudes I have before and after 60 days from the mag >=3. Noticingly Magnitudes should be reshuffled.(it should not be original magnitudes). Finally I should stack all the 25 points results in one plot. I wrote code,it is working but not correct. I should not get peak at zero day. What would be my mistake?
Thanks!
[NUMERIC,TXT,RAW]=XLSREAD('oneLshock.xlsx'); x=NUMERIC(:,2); y=NUMERIC(:,1); Mag=NUMERIC(:,3);
for iii=1:length(TXT); date_str(iii,:)=TXT(iii,4); end
date_num=datenum(date_str,'dd/mm/yyyy');
date1=datenum('01/01/1955','dd/mm/yyyy'); date2=datenum('01/01/2016','dd/mm/yyyy');
A=-0.59; B=43.45; L=0.09; x11=A-L; x22=A+L; y11=B-L; y22=B+L;
Mag=Mag(randperm(length(Mag))); condition = ( Mag >= 3 & x > x11 & x < x22 & y > y11 & y < y22 & date_num > date1 & date_num < date2);
shock = zeros(121,1); date_num_diff = date_num(condition); for i=1:length(date_num_diff) ddi = date_num - date_num_diff(i); k = (ddi <= 60 & ddi >= -60); k60 = ddi(k); for ki = 1:length(k60) shock(k60(ki)+61)= shock(k60(ki)+61) + 1; end end
plot(-60:60,shock,'r'); xlabel('Time(days)','fontweight','bold','fontsize',10); ylabel('Numbers(M>3)','fontweight','bold','fontsize',10); title('Lacq 1L shocks','fontweight','bold','fontsize',10); grid on;
0 Kommentare
Antworten (0)
Siehe auch
Kategorien
Mehr zu Dates and Time finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!