Есть ли в октаве GNU подпрограмма для генерации антидиагональных и обменных матриц? - PullRequest
1 голос
/ 14 апреля 2020

Мне нужно сгенерировать несколько антидиагональных матриц (матрицы, элементы которых в нижнем левом и верхнем правом углу отличны от нуля. См. https://en.wikipedia.org/wiki/Anti-diagonal_matrix) и Матрицы обмена (матрицы, в которых диагональ от нижнего левого до верхнего левого угла равна 1, а все остальное - ноль https://en.wikipedia.org/wiki/Exchange_matrix). Есть ли в Octave встроенные подпрограммы для их генерации (например, eye (n) или diag (1,2,4))?

Конечно, я могу написать a для l oop, чтобы сгенерировать их, но я бы хотел использовать уже существующую процедуру, если она существует.

1 Ответ

2 голосов
/ 14 апреля 2020

Насколько мне известно, нет единой функции, но вы можете легко использовать flipud или fliplr, чтобы перевернуть диагональную матрицу вверх / вниз или влево / вправо, чтобы получить то, что вы хотите:

>> flipud(eye(4))

ans =

     0     0     0     1
     0     0     1     0
     0     1     0     0
     1     0     0     0
...