如何在多维数组中使用指针?在每个方向上,我如何用指针算法替换我所做的工作?我已经将我的ptr定义为*location。我想我需要做这个改变,因为当totalHops>400时,我得到了分段错误。因此,每次显式更改x、y、z肯定会导致此错误。上下文:我正在L乘L乘L的3D空间中移动粒子。我有一个随机数生成器来确定每次粒子随机移动位置时,粒子是向左、向右、向上、向下、向后还是向前移动。(请注意,我已将系统设计为具有周期性边界条件)。 const int L = 10;
int N = L*L*L;
const int totalHops = 200;
int sites[L][L][L]
我正在用MATLAB重写一个蒙特卡洛仿真模型,重点是可读性。该模型涉及许多粒子,表示为(x,y,z),在具有一定终止概率的一小组状态上随机行走。与输出相关的信息是在给定状态下终止的粒子数量。
模拟需要足够的粒子,因此单独为每个粒子运行模拟的成本很高。矢量化似乎是从MATLAB中获得性能的方法,但是有什么惯用的方法来在MATLAB中创建这种模拟的矢量化版本吗?
为了实现这一点,我不知所措-我甚至尝试创建一个(nStates X nParticles)矩阵来表示每个粒子-状态组合,但这种方法很快就失去了可读性,因为粒子相互独立地从一个状态反弹到另一个状态。我是不是应该咬紧牙关换一种更适合这方面的语