我来自MATLAB背景,我试图用python/numpy编写:
[l, m, n] = ndgrid(1:size(dct, 1), 1:size(dct, 2), 1:size(dct, 3));
mycell{i, j} = dct(...
min.^2 <= l.^2 + m.^2 + n.^2 & ...
l.^2 + m.^2 + n.^2 <= max.^2)';
所以代码应该取所有索引(例如x,y,z)的值,这些值在min
和{min^2 < x^2 + y^2 + z^2 < max^2
我唯一能找到的就是用这个索引处数组值的条件来索引数组的一些值,但是我想用索引本身的条件来索引。
我读过关于广播和ix_
函数和高级索引的文章,但是我不能把它们结合起来。
NumPy为我们提供了创建开放网格的功能,它可以在^{} 的帮助下替代3D网格。这将从本质上取代MATLAB代码中的}的{}版本。这是一个巨大的性能标准,已经在^{} 中进行了探讨,并显示了性能优势。在
ndgrid
部分,但会带来额外的好处(请继续阅读以了解更多详细信息)。然后,可以将这些网格划分成正方形并添加以执行l.^2 + m.^2 + n.^2
的等效操作,而无需实际创建l
、m
和{因此,移植到NumPy,我们会-
相关问题 更多 >
编程相关推荐