![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1367364/image.png)
How to define color axis in a for loop?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Ashfaq Ahmed
el 26 de Abr. de 2023
Comentada: Ashfaq Ahmed
el 26 de Abr. de 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 comentarios
Respuesta aceptada
chicken vector
el 26 de Abr. de 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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1367364/image.png)
4 comentarios
chicken vector
el 26 de Abr. de 2023
Editada: chicken vector
el 26 de Abr. de 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.
Más respuestas (0)
Ver también
Categorías
Más información sobre Colormaps en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!