MATLAB: Why does the figure doesn’t show

clusteringkmeanplot

I have data points 1000 and for the first 1000 I'm using mean [-2 1] and std of 0.85 and for the other 1000 I'm using mean [4 5] and std 2 and I'm trying to plot the data but I'm getting this error
function kmean( )
data1 = 1000;
s =[-4 0;1 0.75];
a =[3 0;4 2.0];
data3 = s * data1;
data4 = a * data1;
figure
plot(data3(:,1) , data3(:,2) , 'r.');
plot(data4(:,1) , data4(:,2) , 'g.');
xlabel('x-value');
ylabel('y-value');
axis square
axis ([-10 10 -10 10])
end

Best Answer

My guess is that the ‘data3’ plot doesn’t show.
There are two ways to correct that:
1. Use the hold function:
figure
plot(data3(:,1) , data3(:,2) , 'r.');
hold on
plot(data4(:,1) , data4(:,2) , 'g.');
hold off
xlabel('x-value');
ylabel('y-value');
axis square
axis ([-10 10 -10 10])
2. Plot two separate figures:
figure(1)
plot(data3(:,1) , data3(:,2) , 'r.');
xlabel('x-value');
ylabel('y-value');
axis square
axis ([-10 10 -10 10])
figure(2)
plot(data4(:,1) , data4(:,2) , 'g.');
xlabel('x-value');
ylabel('y-value');
axis square
axis ([-10 10 -10 10])
MATLAB will plot subsequent plot calls in the existing axes, overwriting the existing plot, unless you use the hold function.
Related Question