MATLAB: I want to repeat a section several times taking different values

matlab function

A section of my program is as follows:
Dat=[Data(:,1) Data(:,2)];
nbins=[100 100];
figure
hist3(Dat,nbins,'FaceAlpha',.85);%create 3D histogram plot
set(gcf,'renderer','opengl');
xlabel('X','color','w'); ylabel('Y','color','w');
title('3D histogram X Y','fontweight','bold');
surfHandle = get(gca, 'child');
set(surfHandle,'FaceColor','interp', 'CdataMode', 'auto');
caxis([0 100]);
n=hist3(Dat,nbins);
n1 = n';
n1(size(n,1) + 1, size(n,2) + 1) = 0;
xb = linspace(min(Dat(:,1)),max(Dat(:,1)),size(n,1)+1);
yb = linspace(min(Dat(:,2)),max(Dat(:,2)),size(n,1)+1);
figure
h = pcolor(xb,yb,n1);
caxis([0 20]);
xlabel('X');ylabel('Y');
title('2D histogram X Y','fontweight','bold');
I want to repeat this section several times (say n times). For example. For 'Data' in the program, I have several data 'TimePeriod1' 'TimePeriod2' 'TimePeriod3'……. 'TimePeriodn'. Means, in one run Data= TimePeriod1, the second run Data= TimePeriod2, so n so… For each run, it should output the figures separately. How can I repeat this section several times each time taking Data as TimePeriod1, TimePeriod2 etc..?

Best Answer

I suggest putting it in a function m-file, pass the appropriate arguments to it, and return the appropriate output. Then, you simply call it as a function in a for loop, passing it ‘TimePeriod1’ etc. as arguments. If you want to save the figures the function creates, consider saving them with savefig.