【发布时间】:2015-06-02 16:20:53
【问题描述】:
下面的代码非常适合小向量。
[X1, X2]=meshgrid(Data1(:,1), Data2(:,1));
[Y1, Y2]=meshgrid(Data1(:,2), Data2(:,2));
[Z1, Z2]=meshgrid(Data1(:,3), Data2(:,3));
Rxy = sqrt( (X1-X2).^2 + (Y1-Y2).^2 );
Rz = abs( Z1-Z2 );
[I1, I2] =find( Rxy<=100 & Rz<=0.2);
但是,由于我处理大量数据,matlab 不支持且无法正常工作。 Matlab 生成以下消息:
使用 repmat 时出错请求的 75027x68517 (38.3GB) 数组超出 最大数组大小首选项。创建大于此的数组 limit 可能需要很长时间并导致 MATLAB 变得无响应。 有关详细信息,请参阅数组大小限制或首选项面板。
寻找“内存不足错误”的替代方法,但我没有得到有效的方法。我做了一个循环来运行,但它非常慢。
【问题讨论】:
-
您使用的是 64 位系统吗?
-
哎呀...矩阵大小是巨大的。让我们退后一步。你能向我们解释一下你想要做什么吗?如果我们知道该代码的用途,那么我们甚至可以提供替代方案。
-
是的,我使用的是 windows x64。
-
我是一名海洋学家,从事测深数据分析 (.xyz)。其中 X 是位置,位置 Y 是 Z 是水深我正在制作一个程序来加入将构成地形剖面的线段。首先,我选择并识别段,后验,我找到两个段之间的交集。在这个集合中,我找到了最好的连接点。此点距离应小于10m,Z差(水深)应小于0.2m。所以我找到了加入个人资料的可能要点。