我有一个数据点向量,这些数据点由其他程序从 3D 数组中保存在一个大列表中。向量长度为 nk 个元素。nk = nx*ny*nz 其中 nx、ny 和 nz 是原始 3D 数组的维度。
原始数组中数据点的位置存储在 (nk x 3) 数组中,排列为每行 (position(k,:)),给出相应数据点的 (i,j,k) 位置。
我不能在我的数据数组上使用 reshape,因为位置向量并不简单(它取决于一些与数据生成方式有关的东西——它不是完全随机的——但我不一定知道它是什么样子预先)。
如果 nk 向量称为“数据”,则 nk x 3 位置数组称为“位置”,输出数组称为“data_reshape”,那么目前我正在执行以下操作:
for k = 1:nk
data_reshaped(position(k,1),position(k,2),position(k,3)) = data(k);
end
这真的很慢 - 在不知道“位置”是什么样子的情况下有一些更快的方法吗?