如何在非常大的数据集上绘制图形?

时间:2017-06-15 08:34:33

标签: matlab graph

我有一个包含超过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);

1 个答案:

答案 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

问题可能在接下来的步骤中。你如何处理所有这些价值观?