在GNU Octave/MATLAB编程中,我遇到了一个简单的问题,自己无法解决:我正在尝试使用存储在数组中的一些索引来选择矩阵的某些元素。让我们通过一个例子来清楚地说明这个问题:
给定:
我希望能够使用辅助数组B的值作为下标,按行选择矩阵A中的一些元素。即,选择如下B数组中的元素:
应该理解为:
因此,如果我们将值“1”分配给使用上述条件选择的元素,则生成的矩阵将是:
我相信这是一个简单的操作,而且我相信必须有一种方法可以实现所描述的行为,而无需在矩阵A的行之间循环。谢谢。
编辑:重写问题,以使其(希望)不那么令人困惑。
给定:
A = zeros(5, 3)
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
我希望能够使用辅助数组B的值作为下标,按行选择矩阵A中的一些元素。即,选择如下B数组中的元素:
B = [ 1 3 2 1 3 ]'
1
3
2
1
3
应该理解为:
应读作:
1 -> index '1' on first row (element [1, 1])
3 -> index '3' on second row (element [2, 3])
2 -> index '2' on third row (element [3, 2])
1 -> index '1' on fourth row (element [4, 1])
3 -> index '3' on fifth row (element [5, 3])
因此,如果我们将值“1”分配给使用上述条件选择的元素,则生成的矩阵将是:
1 0 0
0 0 1
0 1 0
1 0 0
0 0 1
我相信这是一个简单的操作,而且我相信必须有一种方法可以实现所描述的行为,而无需在矩阵A的行之间循环。谢谢。
编辑:重写问题,以使其(希望)不那么令人困惑。