我想问一下如何在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 |
我很乐意得到答案:)谢谢
答案 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);