matlab - 如何在 Matlab 中将数据保存在 "opts = statset(' Display' ,'iter' );”显示的文件或矩阵中?

标签 matlab k-means fuzzy

我正在开发一段 k-means 模糊代码。现在我想保存 statset('Display','iter'); 显示的每次迭代的数据。请帮助我。

X = [randn(20,2)+ones(20,2); randn(20,2)-ones(20,2)];
opts = statset('Display','iter');

[cidx, ctrs] = kmeans(X, 2, 'Distance','city', ...
    'Replicates',5, 'Options',opts);

plot(X(cidx==1,1),X(cidx==1,2),'r.', ...
X(cidx==2,1),X(cidx==2,2),'b.', ctrs(:,1),ctrs(:,2),'kx');

最佳答案

函数 diary 给出了一个虚拟解它可以将 matlab 控制台输出存储在文件中。

X = [randn(20,2)+ones(20,2); randn(20,2)-ones(20,2)];
opts = statset('Display','iter');

diary('output.txt')  % # Whatever is displayed from now on is saved on 'output.txt'

[cidx, ctrs] = kmeans(X, 2, 'Distance','city', ...
    'Replicates',5, 'Options',opts);

diary('off')         % # logging is disabled

执行后,output.txt将包含

 iter    phase       num             sum
  1      1        40          96.442
  2      1         8         79.7403
  3      1         6         70.2776
 ...

您可能希望在每次运行时清理 output.txt 的内容,否则它只会在前一个日志之后附加新日志。

关于matlab - 如何在 Matlab 中将数据保存在 "opts = statset(' Display' ,'iter' );”显示的文件或矩阵中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15817861/

相关文章:

matlab - 计数培养皿上的菌落

apache-spark - 使用 Mahout 向量训练 Spark k-means

machine-learning - 如何使用 k-means 聚类获得更多特征

machine-learning - 模糊 c- 表示分类数据

c - 为什么我的内核没有超过共享内存限制?

arrays - 在 MATLAB 中使用矩阵进行矩阵索引

elasticsearch - 如何使用同义词模糊搜索?

.net - .NET 的模糊日期/时间管理库

r - 如何画一个里面有双色粒子的 Crystal 球

python - 如何在Python中按条件应用聚类