Azzera filtri
Azzera filtri

how to combined monthly data in sequence?

6 visualizzazioni (ultimi 30 giorni)
Vedanta
Vedanta il 9 Lug 2024
Commentato: Manikanta Aditya il 10 Lug 2024
hello all,
I have a time series data for 10 year (lat X lon X 120). For taking monthly mean of every jan, feb.... dec, I have separated jan to dec data
jan = data(:,:,[1:12:10]);
feb = data(:,:,[2:12:10]);
mar = data(:,:,[3:12:10]);
aprl = data(:,:,[4:12:10]);...........
Then I have taken mean,
jan_mean = mean(jan(:,:,1:10),3); feb_mean = mean(feb(:,:,1:10),3); .......................................................dec_mean = mean(dec(:,:,1:10),3);
For calculation of anomaly, Anom_jan = jan - jan_mean, Anom_feb = feb - feb_mean......................
Now, I want to combined all these Anom timeseries in seuence (lat X lon X 120).
how to merge theses timeseries in sequece of jan to dec of ever year?

Risposte (1)

Manikanta Aditya
Manikanta Aditya il 9 Lug 2024
Modificato: Manikanta Aditya il 9 Lug 2024
You can concatenate the anomaly time series data for each month along the third dimension using the cat function in MATLAB.
Here’s how you can do it:
Anom_combined = cat(3, Anom_jan, Anom_feb, Anom_mar, Anom_apr, Anom_may, Anom_jun, Anom_jul, Anom_aug, Anom_sep, Anom_oct, Anom_nov, Anom_dec);
This will create a new 3D matrix Anom_combined where the third dimension is the time series data for each month from January to December for every year. The size of Anom_combined will be (lat X lon X 120), same as your original data. Replace with your actual varible names.
I hope this clarifies
  2 Commenti
Vedanta
Vedanta il 9 Lug 2024
this command (cat) is just merging the data. Anom_jan is having january value for 10years, similarly Anom_feb is having feb months values for 10year. I want datasets in monthly series... jan to dec of first year, jan to dec of seond year............. jan to dec of 10th year
Manikanta Aditya
Manikanta Aditya il 10 Lug 2024
I understand. You want to concatenate the anomalies in a way that represents the monthly sequence for each year, rather than all of the same months together.
Here is how you can do it:
% Assuming Anom_jan, Anom_feb, ..., Anom_dec are already calculated
% Preallocate the combined anomaly matrix
Anom_combined = zeros(size(Anom_jan, 1), size(Anom_jan, 2), 120);
% Number of years
num_years = 10;
% Loop through each year and interleave the monthly data
for year = 1:num_years
for month = 1:12
% Determine the correct index in the combined matrix
idx = (year - 1) * 12 + month;
% Assign the monthly anomaly to the correct position
switch month
case 1
Anom_combined(:, :, idx) = Anom_jan(:, :, year);
case 2
Anom_combined(:, :, idx) = Anom_feb(:, :, year);
case 3
Anom_combined(:, :, idx) = Anom_mar(:, :, year);
case 4
Anom_combined(:, :, idx) = Anom_apr(:, :, year);
case 5
Anom_combined(:, :, idx) = Anom_may(:, :, year);
case 6
Anom_combined(:, :, idx) = Anom_jun(:, :, year);
case 7
Anom_combined(:, :, idx) = Anom_jul(:, :, year);
case 8
Anom_combined(:, :, idx) = Anom_aug(:, :, year);
case 9
Anom_combined(:, :, idx) = Anom_sep(:, :, year);
case 10
Anom_combined(:, :, idx) = Anom_oct(:, :, year);
case 11
Anom_combined(:, :, idx) = Anom_nov(:, :, year);
case 12
Anom_combined(:, :, idx) = Anom_dec(:, :, year);
end
end
end
Hope this helps!

Accedi per commentare.

Categorie

Scopri di più su Time Series 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!

Translated by