我只是一个新手程序员,我需要一些帮助来解决这个问题。
我目前正在模拟在二维晶格上相互作用和移动的粒子。粒子在任何点的位置数据存储在我在模拟过程中使用的二维数组中。模拟之后,我希望能够直观地看到所有粒子的最终位置。目前,我将数据发送到 MATLAB,并让它在图形上绘制每个粒子。这有效,并创建了我的系统配置的“图片”。但是,对于大晶格中的大量粒子(尺寸为 600 个粒子宽 x 1200 个粒子高),这会使处理图片的速度非常慢,MATLAB 和文字处理处理起来非常慢,而且消耗很多内存和空间。
必须有更好的方法来做到这一点,有人对查看我的系统或控制数据的更好方法有任何想法吗?
我的 matlab 代码如下:
%--------------------------------------- Particle Picture
clc; clear all;
particle_file = fopen('ABC_Particles_600X1200T1.txt');
particles = fscanf(particle_file,'%f');
fclose(particle_file);
figure(3);
hold on;
sizex = 600;
sizey = 1200;
for a = 1:1:sizey*sizex
b = int32(a);
if particles(a) == 0
plot(mod(b,sizex)+1,idivide(b,sizex)+1,'c')
end
if particles(a) == 1
plot(mod(b,sizex)+1,idivide(b,sizex)+1,'r')
end
if particles(a) == 2
plot(mod(b,sizex)+1,idivide(b,sizex)+1,'k')
end
end
title('Size 600X1200; Time T = 1')
axis([0 sizex 0 sizey])