MATLAB:如何按索引矩阵设置矩阵?

时间:2018-03-30 12:26:47

标签: matlab matrix indexing

我想问一下如何在MATLAB矩阵中设置:

| 1 4 5 |
| 2 9 1 | = A,
| 5 1 3 |

| 1 3 2 |
| 2 1 3 | = INDEX,它表示哪些位置应放置矩阵A的元素 | 3 2 1 |

像这样:(它将是一个输出)

| 1 5 4 |
| 9 2 1 | = MATRIX,
| 3 1 5 |

我很乐意得到答案:)谢谢

1 个答案:

答案 0 :(得分:2)

这里提供了两种解决方案:

使用accumarray

[row_idx, ~] = find(INDEX);
result = accumarray([row_idx(:) INDEX(:)], A(:), size(A));

使用sub2ind

s = size(A);
row_idx = repmat((1:s(1)).', 1, s(2));
idx = sub2ind(s, row_idx, INDEX);
result = reshape(A(idx), s);