我尝试创建一个带有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数组?如何?
你需要创建3个向量:
k of size [1 x K x 1] ,
mp of size [M x 1 x 1] and
m of size [1 x 1 x M].
使用implicit expansion,您可以创建所需的数组:
K = 5;
M = 7;
k = 0:K-1;
mp = (0:M-1).'
m = reshape(0:M-1,1,1,[]);
result = k/K+mp-m;
请注意,它比ndgrid
解决方案更有效。