Is there a way to create a lot of graphs for a 4D matrix without coding for a ton of individual graphs?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Kitt
el 8 de Mayo de 2024
Editada: David Goodmanson
el 1 de Sept. de 2024
I have a 4D matrix that I'm trying to create graphs for. There are 4 dimensions, a physical state, two informational states, and time.
I want to make a bunch of graphs within a larger "graph" Basically info state 1 on the y axis and info state 2 on the x axis, but then within that, there are a bunch of graphs with physical state on the y axis and time on the x axis.
Here's an example of one graph:
fivexfive(:,:)=opt(:,5,5,:);
imagesc(fivexfive);
colorbar;
xlabel('Time');
ylabel('State');
set(gca,'YDir','normal');
axis('square')
the second two dimensions range from 1-15 each. So that'd be..... a lot of graphs.
Is there any way to try and make at least a few of them without brute forcing a ton of graphs? If that's not possible that's fine, figured I'd try asking!
5 comentarios
Respuesta aceptada
David Goodmanson
el 8 de Mayo de 2024
Editada: David Goodmanson
el 1 de Sept. de 2024
Hi Kitt,
Here is one approach. In the example you are using imagsc plots instead of e.g. 1d plots of some state quantity vs. time, so imagesc is used here. This code thinks about it for a few seconds and then makes 15 figures of 15 miniplots each, one of which is below.
A = rand(100,15,15,100); % assuming the order is state,info1,info2,time
B = permute(A,[4 1 2 3]); % put into an easier order, less potential problems for Matlab
for info1 = 1:15
figure(info1)
sgtitle(['inf01 = ' num2str(info1)])
info2 = 1;
subplot(4,4,info2)
imagesc(B(:,:,info1,info2))
title(['info2: ' num2str(info2)])
for info2 = 2:15
subplot(4,4,info2)
imagesc(B(:,:,info1,info2))
title(num2str(info2))
end
end
2 comentarios
David Goodmanson
el 9 de Mayo de 2024
you're quite welcome. Matlab does have some useful plotting options.
Más respuestas (0)
Ver también
Categorías
Más información sobre Line Plots 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!