Obtaining mean values contourf
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi,
I am using the contourf function to plot data inside a specific level. After this, I would like to evaluate the mean value at each level (not the centroid) to be then used for further analysis.
So far I am able to exctract the data inside a specific level but then I am not able to find the mean values.
Can someone help?
Thank you,
Carola
0 Commenti
Risposta accettata
DGM
il 21 Ago 2023
Modificato: DGM
il 21 Ago 2023
Consider the following example
% some fake data
A = reshape(1:256,16,[]);
A = A + 10*randn(size(A));
[min(A(:)) max(A(:))] % just show what the data range is
% unless levels are known explicitly
% get them from the contour plot
[~,hc] = contourf(A); hold on
% first level corresponds to data minimum
% last level rarely corresponds to data maximum
ll = hc.LevelList
% so make sure there are consistently enough boundaries to cover the data range
mx = max(A(:));
if mx > ll(end)
ll = [ll mx];
end
ll % the full level list (the region boundaries)
% get the mean value of each region
nregions = numel(ll)-1;
lvlmean = zeros(1,nregions);
for k = 1:nregions
if k < nregions
% each region in a contourf() plot
% is associated with the lower boundary of the region
mask = (A >= ll(k)) & (A < ll(k+1));
else
% make sure to include maximum values
mask = (A >= ll(k)) & (A <= ll(k+1));
end
lvlmean(k) = mean(A(mask));
end
lvlmean
... or you could choose to handle the region conditionals symmetrically if you wanted. That's up to you.
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Data Distribution Plots 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!