Acessing large3D matrix incredibly slow
显示 更早的评论
I have a code in which i wish to remove certain points from a large matrix, calculation of which points to remove which requires large number of calculations only takes a fraction of the time it takes to change a point in the matrix. i timed it like so:
d=top_cell_array{i};
a=d(1);
b=d(2);
c=d(3);
tic;
centroids_3D(a,b,c)=0;
time_of_exec=toc
what i get as a result is sometimes a few ms, but sometimes exceeds half a second, just to excess and change the point in the matrix, the matrix is of size (512,512,520); my calculations which require hundreds if not thousands of operations(which include excessing the large matrix) only take a few ms everytime, im incredibly confused as to why matlab takes it time in changing it, and what can i do about it.
2 个评论
Daniel ziv
2017-5-17
Stephen23
2017-5-17
Instead you could easily leave the matrix where it is, and return the indices.
回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!