【发布时间】:2018-09-19 02:07:33
【问题描述】:
我尝试创建一个具有 3 个索引 k=0,...,K-1, m'=0,...,M-1, m=0,...,M-1 的 3d 数组。我可以以某种快速的方式生成这样一个 3d 数组,其中 (k,m',m) 位置的元素是 k/K+m'-m 吗?我目前的方法是使用 3 层 for 循环来计算每个元素。这有点笨拙,我相信必须有更好的方法。那么有人可以给我一些灵感吗?感激不尽。
顺便问个问题。我可以从矩阵A 和向量b 生成一个3d 数组吗?我的意思是b 中的每个元素都用A 进行一些计算,以便我们可以推导出一个 3d 数组?如何?
【问题讨论】:
-
MATLAB 使用基于 1 的索引,因此数组中不存在位置 (0,0,0)。
-
也就是说,听起来您可能想要
[k,m1,m2] = ndgrid(0:(K-1), 0:(M-1), 0:(M-1)); result = k/K + m1 - m2; -
谢谢!@jodag 你向我展示了一个强大的工具并帮助了我很多!:)