【发布时间】:2014-12-31 21:25:54
【问题描述】:
A 是一系列 3D 坐标点 (X,Y,Z),例如:
>> A = [1 2 0;3 4 7;5 6 9;9 0 5;7 8 4]
A =
1 2 0
3 4 7
5 6 9
9 0 5
7 8 4
我想根据"Y" (second column) 值对矩阵进行排序。
这是我正在使用的代码:
>> tic;[~, loc] = sort(A(:,2));
SortedA = A(loc,:)
toc;
SortedA =
9 0 5
1 2 0
3 4 7
5 6 9
7 8 4
Elapsed time is **0.001525** seconds.
但是,对于大量数据,它可能会非常慢。如果有人知道更有效的方法,我将不胜感激。
【问题讨论】:
-
如果你有一个不错的 GPU,你可以利用它来很好地加速,只需一些信息。
-
@Divakar 是否需要更改我电脑中的任何设置?
-
您只需要在 PCT 工具箱中使用
gpuArray,但您有合适的 GPU 使用吗? -
@Divakar 是的,伙计,我得到了“NVIDIA GeForce GTX 645”,应该没问题。对吗?
-
添加了GPU based solution,看看你的结果如何!
标签: arrays performance matlab sorting