Extracting datas based on date from two datasets
Mostra commenti meno recenti
I have two set sets of data where one is 93*2 and other is 609*2. I want to match up the date and extract two different sets of data based on that date. I try this way,
%Retrieve unique sampling period
period = unique(date_LFMC,'rows');
%Build subs for accumarray
[~, subs] = ismember(date_LFMC, period, 'rows');
%Perform accumarray to average FMC
LFMC_avg = period;
LFMC_avg(:,2) = accumarray(subs, Livemoisture_JFSP,[],@nanmean); % 93*2
%Retrieve unique date
period = unique(DateSM,'rows');
%Build subs for accumarray
[~, subs] = ismember(DateSM, period, 'rows');%609*2
%Perform accumarray to calculate average FAW
FAW_avg = period;
FAW_avg(:,2) = accumarray(subs, FAW40,[],@nanmean);
%Assign FAW to each LFMC sample
Data_avg(:,4) = LFMC_avg(:,2);
for i = 1:size(LFMC_avg,1);
for i2 = 1:size(FAW_avg,1)
if Data_avg(i,2) == FAW_avg(i2,1);
Data_avg(i,4) = FAW_avg(i2,2);
end
end
end
I get one sets of data but with another, I am just getting zero. let me know where I did wrong?
Sonisa
4 Commenti
dpb
il 29 Set 2016
No can tell; no data. You are trying to compare to computed values that are presumably not integers so there's a high chance that they don't match to the exact bit if the two arrays each have something in them but the condition in the loop is never satisfied. But, we don't even know that's the problem for certain.
Sonisa
il 29 Set 2016
dpb
il 29 Set 2016
Have you used the debugger and stepped through your script to see where it goes wrong? Do so and report the symptoms; don't rely on somebody else to do all your debugging for you...
mizuki
il 2 Ott 2016
How about using datetime format, synchronize/innerjoin/outerjoin function?
Risposte (0)
Categorie
Scopri di più su Logical in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!