给定 Octave / Matlab 中的一些多维矩阵 A,
获得与 A 相同大小的矩阵的最简单方法是什么,其中所有元素都被它们沿第 k 维的索引替换
即对于矩阵
A =
ans(:,:,1) =
0.095287 0.191905
0.226278 0.749100
ans(:,:,2) =
0.076826 0.131639
0.862747 0.699016
我想要一个函数 f 使得 f(A,1) =
ans(:,:,1) =
1 1
2 2
ans(:,:,2) =
1 1
2 2
f(A,2) =
ans(:,:,1) =
1 2
1 2
ans(:,:,2) =
1 2
1 2
和
f(A, 3) =
ans(:,:,1) =
1 1
1 1
ans(:,:,2) =
2 2
2 2
此外,给定一个稀疏矩阵 B
获得另一个相同大小的稀疏矩阵的最简单方法是什么,其中非零元素被它们沿第 k 维的索引替换?(与上述问题相同,但仅适用于非零元素)
理想情况下,我正在寻找一种针对八度音程进行良好矢量化的方法(这意味着它不会显式循环任何内容)
澄清:对于稀疏矩阵,我正在寻找一种不涉及在任何时候创建全尺寸(B)矩阵的解决方案