subplot of plots generated from a for loop

Hi everyone,
I am trying to creat one subplot that has all my 16 plots that were generated from a for loop. I want my subplot to be a 2x8 grid
This is what I am doing but it doesn't seem to work. Any help is appreciated
X= my_data
nCols=3
subplot (2,8,1)
hold on
for iCol=1:nCols:size(X,2)
figure
plot(X(:,iCol:iCol+nCols-1))
end
hold off

 Réponse acceptée

MJFcoNaN
MJFcoNaN le 9 Avr 2022
If you need a subplot in for loop, maybe this is an example:
X= my_data
nCols=3
for iCol=1:nCols:size(X,2)
ax=subplot(2, 8, iCol);
plot(ax, X(:,iCol:iCol+nCols-1))
end

3 commentaires

Nany
Nany le 9 Avr 2022
I get this error. The argument iCol apparently exceeds the number of subplots (16). I am thinking maybe because it is in a for loop? Also the sub plot produced is 2*6. Is there a way to store the plots produced by the for loop for example, then combining them in a subplot?
% Error using subplot
Index exceeds number of subplots.
Error in duntitled2 (line 13)
aX=subplot(2, 8, iCol )
The object of axes is very flexible for recalling, for example:
for ii=1:16
ax(ii)=subplot(2, 8, ii);
end
plot(ax(3), x3, y3)
But your task may not be such complex, and this could be enough:
count=0;
for iCol=1:nCols:size(X,2)
count=count+1;
ax=subplot(2, 8, count);
plot(ax, X(:,iCol:iCol+nCols-1))
end
Nany
Nany le 9 Avr 2022
Thank you so much! That solved the problem. I really appreciate your help

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating, Deleting, and Querying Graphics Objects dans Centre d'aide et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by