Создать специальную диагональную матрицу - PullRequest
0 голосов
/ 04 мая 2019

Я хочу создать специальную диагональную матрицу в MATLAB, которая использует [1 1] или любой другой массив в качестве основных диагональных элементов.Что-то вроде следующего:

[1   1   0   0   0   0
 0   0   1   1   0   0
 0   0   0   0   1   1]

Как я могу сделать это без использования каких-либо структур цикла?

1 Ответ

2 голосов
/ 04 мая 2019

Пусть

v = [1 1];
n = 3;
  • Использование kron:

    result = kron(eye(n), v);
    
  • Использование blkdiag:

    vv = repmat({v}, 1, n);
    result = blkdiag(vv{:});
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...