Это однострочный метод, который не очень эффективен для больших матриц
reshape(diag(A(ix(:),iy(:))),[ny nx])
Более понятный и эффективный метод - использовать sub2ind . Я включил комментарий Юка для ситуаций (подобных вашей), когда ix
и iy
имеют одинаковое количество элементов:
newA = A(sub2ind(size(A),ix,iy));
Кроме того, не путайте x
и y
для i
и j
в обозначениях - j
и x
обычно представляют столбцы, а i
и y
представляют строки.