如何在非常大的数据集上绘制图形?
我有一个包含超过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.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
该问题可能是在接下来的步骤。你如何处理所有这些价值?
我相信OPs问题是图形引擎耗尽内存,而不是MATLAB本身 –
你能解释一下吗?我无法明白你的观点。 @AnderBiguri Biguri –
当他执行“plot”时,他没有记忆,而不是当他加载数据时。因为plot需要java,openGL等东西。 'memory_data
2.000.000 datapoints,存储在uint16中只有'(2000000 * 2)/ 2^20 = 3.81 MB'因此内存不应该是一个问题我会说。你对数据做什么?你从哪里得到这个错误? – Gelliant
我想绘制这些值的图表。从文件读取这些值时,发生错误。 –
你假装看什么?如果您的屏幕宽度为2.000.000像素,则只有这样才能真正看到您的数据。这大约相当于1000个正常屏幕,这就是每个数据只有一个像素的情况。你确定这是你想要做的吗? –