Multiples traces overlapping on multiple subplots
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hello! I am struggling to create 16 2D subplots based on data in a matrix 16x800x40, which correspond to 16=conditions, 800=bins (points to be included in each trace), 40=repetitions of the same condition. I want to make 40 different traces, all on one of the 16th subplot (so 16 plots, each having 40 traces on). I know I probably need to create some nested for loop but so far could not work it out.
Would appreciate any help!!
this is what I've tried so far....
for s=1:size(singleTrialTraces,3)
for k=1:size(singleTrialTraces,1)
subplot(4,4,k)
plot(singleTrialTraces(k,:,s))
axis tight
hold on
end
end
2 Commenti
dpb
il 3 Feb 2021
You're missing a hold on to put additional traces on the given axes.
If you were to orient so each 2D array were a plane in the 3D array, then a slice by 40 columns of 800 rows could be done in one call to plot(); it treats each column in a "y" 2D array as a variable automagically.
Risposta accettata
VBBV
il 3 Feb 2021
Modificato: VBBV
il 3 Feb 2021
clear
clc
K = rand(16,800,40);
for i = 1:16
subplot(16,1,i) % subplot(4,4,i)
for j = 1:40
plot(K(i,:,j),'b-','linewidth',0.2);
ylim([-1 2.5])
hold on
end
end
Try this
6 Commenti
VBBV
il 4 Feb 2021
clear
clc
K = rand(16,800,40);
for i = 1:16
for k = 1:800
KK(i,:) = K(i,k,:);
end
end
for i = 1:16
subplot(4,4,i)
for j = 1:40
plot(K(i,:,j),'-');
hold on
end
hold on
kx = mean(KK(i,:))
kxx = repmat(kx,800,1)
plot(kxx,'k-','linewidth',3)
end
But you may need to put hold on outside of loop as above
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Behavior and Psychophysics in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!