我有一个包含超过10,000行的文件。每行包含不同群集的数据。数据是一些整数。我的文件如下所示:
1 2
5
4 6 10
43 23 28 55
12
32 51
56 39 90
98 41
9
.........
.........
所有数字在文件中都是唯一的。每个群集中的数据数量可能不同。该文件是聚类算法的输出。现在我必须绘制这些数据的图表。如果文件包含不超过50,000个唯一数据,则可以将此文件作为输入提供给matlab以绘制图形。但我的文件有超过2,00,000个唯一数据。因此,matlab显示如下错误消息:
"Out of memory. Type HELP MEMORY for your options"
有一种可能的解决方案,我可以使用稀疏矩阵。但是该文件是由群集算法的工具自动创建的。因此,没有任何选项可以将输出导出为稀疏矩阵的内容。 所以,我需要了解如何在如此庞大的数据上绘制图表。而不是matlab,有没有其他软件(基于Linux或基于Windows)来解决我的问题?我写了一个如下的matlab脚本:
clc;
m=dlmread('C:\Users\Dhan\Desktop\clusteredResult_demo.txt');
plot(m);
答案 0 :(得分:0)
您可以使用此脚本打开文件吗?使用此脚本,我可以使用我的PC在0.234789秒内打开10.000行的文件。
tic
%open file
fid = fopen('file.txt');
%allocate memory
M=zeros(10000,6,'uint16');
%get data
l=fgetl(fid);
L=sum(l==' ')+1;
v=textscan(l,'%u16',L);
M(1,1:L)=v{:};ct=2;
l=fgetl(fid);
while ~isnumeric(l)
L=sum(l==' ')+1;
v=textscan(l,'%u16',L);
M(1,1:L)=v{:};ct=ct+1;
l=fgetl(fid);
end
fclose(fid);
toc
问题可能在接下来的步骤中。你如何处理所有这些价值观?