How to define color axis in a for loop?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Ashfaq Ahmed
le 26 Avr 2023
Commenté : Ashfaq Ahmed
le 26 Avr 2023
Hi all, I wanted to define the color axis range based on the number of the ii in this for loop, but I don't know what is wrong, can someone please explain?
for ii = 1:16
ax(ii) = subplot(4,4,ii);
h{ii} = pcolor(LON,LAT,Temp,3,'omitnan')));
set(h{ii}, 'EdgeColor', 'none');
shading interp;
colorbar;
if ii == 1 && 5 && 9 && 13
caxis([0 8]);
elseif ii == 2 && 6 && 10 && 14
caxis([6 12]);
elseif ii == 3 && 7 && 11 && 15
caxis([6 12]);
elseif ii == 4 && 8 && 12 && 16
caxis([12 18]);
end
setup_plots(ax(ii))
end
0 commentaires
Réponse acceptée
chicken vector
le 26 Avr 2023
By axis color, do you mean something like this?
nPoints = 10;
[X,Y] = meshgrid(-3:6/nPoints:3,-3:6/nPoints:3);
Z = peaks(X,Y);
cmap = jet;
figure;
tiledlayout(4,4)
for j = 1 : 16
nexttile;
pcolor(Z)
idx = (1:16) + (j-1)*16;
colormap(gca,cmap(idx,:));
end
Result:
4 commentaires
chicken vector
le 26 Avr 2023
Modifié(e) : chicken vector
le 26 Avr 2023
The are two errors in your conditions:
1)The && operator means ‘and’ but here you need ‘or’
2) You also need to repeat the portion ‘ii ==‘
So, for example, first condition should be:
if ii == 1 || ii == 5 || ii == 9 || ii == 13
Or, alternatively, you can use:
if rem(ii,4) == 1
…
elseif rem(ii,4) == 2
…
elseif rem(ii,4) == 3
…
else
…
end
Sorry for bad formatting, but I’m typing from my phone.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Purple 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!