Find minimum values based on unique number
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a dataset of temperatures collected over multiple depth profiles (1-147 profiles). The data is all listed in one long table, not by each profile (attached).
Each profile has a different temperature minimum, and I want to find this minimum for each profile, and colour all of the temperatures above this in grey in a figure (essentially discarding them).
- Evidently I'm going about this the wrong way as my output (T_min) is all the same number (see code below).
- Once I have the T_min for each profile, when I do a scatter plot, how can I colour each dot less than the T_min - for that particular profile - grey?
Thanks in advance - sorry if this isn't very clear.
j=1;
for i=1:length(dives)
T_min(j) = nanmin(SG579_FINAL_table_MF.Cons_temp(dives));
j=j+1;
end
0 commentaires
Réponse acceptée
Mathieu NOE
le 15 Mai 2024
hello
the provided mat file contains 492 different profiles (and not 147)
my suggestion so far :
load('matlab.mat')
prof = Prof_temp.Profile_num;
prof_unic = unique(prof);
for k=1:length(prof_unic)
ind = (prof == prof_unic(k));
T_min(k) = min(Prof_temp.Temp(ind),[],'omitnan');
end
plot(prof_unic,T_min);
xlabel('Profile #')
ylabel('Average temperature')
10 commentaires
Plus de réponses (1)
Stephen23
le 15 Mai 2024
P = load('matlab.mat').Prof_temp
S = groupsummary(P,"Profile_num","min","Temp")
plot(S.Profile_num,S.min_Temp)
4 commentaires
Voir également
Catégories
En savoir plus sur Whos dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!