【发布时间】:2012-06-02 13:02:18
【问题描述】:
我有一个数据文件,其中包含用记事本编写的 50 个二维数据点。我想在聚类算法中使用它来聚类这 50 个点。如何导入此文件?有没有其他方法可以在程序中使用?
【问题讨论】:
-
在适当的软件中打开文件?
标签: matlab file-io cluster-analysis
我有一个数据文件,其中包含用记事本编写的 50 个二维数据点。我想在聚类算法中使用它来聚类这 50 个点。如何导入此文件?有没有其他方法可以在程序中使用?
【问题讨论】:
标签: matlab file-io cluster-analysis
您可以将数据保存为 .csv 文件,也可以将其保存到 Excel 电子表格并使用 xlsread()。更多信息请看这里:http://www.mathworks.com/help/techdoc/ref/xlsread.html
对于 .csv 案例,这篇文章应该很有帮助:Fastest way to import CSV files in MATLAB
【讨论】:
假设您有以下数据:
X = [randn(100,2)-1 ; randn(100,2)];
save data.mat X
那么就这么简单:
%# load data from MAT-file
load data.mat
%# cluster into K=2 clusters
C = kmeans(X,2);
%# show cluster assignment
gscatter(X(:,1), X(:,2), C)
【讨论】:
这取决于您如何格式化数据文件。您说它保存在记事本上,但这并没有太大帮助。根据您用作数据分隔符的内容,您可以使用 dlmread 函数将数据文件导入到数组中。例如,如果您的文件名为 filename.dat 并且使用了 ;用于分隔此文件中的每个数据项的字符,您可以使用
将数据读入矩阵 A A = dlmread("filename.dat",';');
我建议阅读有关 matlab 中 dlmread 函数的帮助文档。
【讨论】: