在MATLAB中,我正在寻找一种通过从给定“选择器矩阵”的多个矩阵中进行选择来填充矩阵的高效(和/或矢量化)方法。例如,给定三个源矩阵在MATLAB中用索引矩阵选择值?
M1 = [0.1, 0.2; 0.3, 0.4]
M2 = [1, 2; 3, 4]
M3 = [10, 20; 30, 40]
和指数
I = [1, 3; 1, 2]
我想通过从M3
选择从M1
的第一个条目,第二以产生新的矩阵M = [0.1, 20; 0.3, 4]
的矩阵等
我完全可以在嵌套循环中做到这一点,通过每个条目并填写值,但我相信有一种更有效的方法。
如果M1
,M2
,M3
和M
都是3D矩阵(RGB图像)? I
的每个条目告诉我们从哪个矩阵中我们应该采用3向量。说,如果I(1, 3) = 3
,那么我们知道M
的(1, 3, :)
索引的条目应该是M3(1, 3, :)
。