Borrar filtros
Borrar filtros

How to define color axis in a for loop?

1 visualización (últimos 30 días)
Ashfaq Ahmed
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

Respuesta aceptada

chicken vector
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:
  4 comentarios
chicken vector
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.
Ashfaq Ahmed
Ashfaq Ahmed el 26 de Abr. de 2023
Perfect! Thank you so much!

Iniciar sesión para comentar.

Más respuestas (0)

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!

Translated by