How to plot two figures in MATLAB

matlab, plot

Solution

Try subplot:

figure;
subplot(1,2,1)
plot(firstdata)
subplot(1,2,2)
plot(seconddata)

This will create two axes areas within the same figure window... from your description, this is my best guess as to what you want.

Edit: From the comments below, here is what you are doing

n=50;
X = 500*rand([n,2]);
subplot(1,2,1); #% <---- add 'subplot' here
plot(X(:,1),X(:,2),'r.')
symbs= {'r+','g.','bv','m*','ko'}; 
subplot(1,2,2); #% <---- add 'subplot' here (with different arguments)
hold on
for i = 1: length(I)
plot(X(C==i,1),X(C==i,2),symbs{i})
end

If all you want is a second figure window, instead of doing `subplot` you can simply say `figure` in the place where I put the second call to `subplot` and a new figure window will be created.

figure; #% <--- creates a figure window
n=50;
X = 500*rand([n,2]);
plot(X(:,1),X(:,2),'r.') #% <--- goes in first window


symbs= {'r+','g.','bv','m*','ko'}; 
figure; #% <---- creates another figure window
hold on
for i = 1: length(I)
plot(X(C==i,1),X(C==i,2),symbs{i}) #% <--- goes in second window
end

Problem

I am implementing a clustering algorithm for `n` data points and I want to plot `n` data points in a figure before clustering and in another figure after clustering meaning that there should be two figures in same file with same data points. My code is like: ``` X = 500*rand([n,2]); plot(X(:,1), X(:,2), 'r.') 1 %Some coding section here ``` After: ``` symbs = {'r+','g.','bv','m*','ko'}; hold on for i = 1: length(I) plot(X(C==i,1), X(C==i,2), symbs{i}) 2 end ``` I just want to plot (1) in one figure and (2) in another.

Original source

Related problems