Script Writes Correctly, The Graph Still Doesn't Show Up

3 views (last 30 days)
I'm working with k-means in MATLAB. And here is my code:
k=input('Enter a number: ');
[g c] = kmeans(cobat,k,'dist','SqEuclidean');
y = [cobat g]
[s,h]=silhouette(cobat,g,'SqEuclidean') %Show the silhouette graphic
%Show the plot3D graphic
Colors=hsv(k);
PlotClusters(cobat,g,c,Colors)
When I run it, it works anyway, but why " [s,h]=silhouette(cobat,g,'SqEuclidean')" can't be shown?
When I deleted this line: Colors=hsv(k); PlotClusters(cobat,g,c,Colors)
The silhouette graph can be shown.
What should I do so all the graphs can be shown?
Your help means a lot to me, thank you.

Accepted Answer

Matt Kindig
Matt Kindig on 9 May 2013
Call hold on after your silhouette() call. 'hold on' prevents the current axes from being cleared after each plotting command.
[s,h]=silhouette(cobat,g,'SqEuclidean') %Show the silhouette graphic
hold on;
%Show the plot3D graphic
Colors=hsv(k);
PlotClusters(cobat,g,c,Colors)
doc hold

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!