MATLAB - создать матрицу с подматрицами - PullRequest
3 голосов
/ 26 февраля 2012

Скажем, у меня есть три разные подматрицы 2x2, и я хочу создать большую матрицу 6x6 в Matlab, в которой три подматрицы появляются на диагонали, а все остальные значения равны 0. Как я могу это сделать, не вводя все нули явно? Я только начал изучать MatLab, и я действительно начинающий. Если бы кто-то мог помочь мне с этим, я был бы очень благодарен! Позже я должен сделать это с большим количеством матриц, и ввод всех нулей становится болью!

Ответы [ 3 ]

7 голосов
/ 26 февраля 2012

Предположим, что ваши матрицы названы M1, M2, M3, напишите blkdiag(M1, M2, M2). Если какая-либо из ваших матриц будет разреженной, будет и результат. В противном случае он будет плотным.

0 голосов
/ 15 марта 2015

Также можно определить a=zeros(6);, тогда вы можете начать ввод a(1:2,1:2)=a11, a(3:4,3:4)=a22,a(5:6,5:6)=a33, где a11, a22 и a33 - ваши матрицы 2 × 2.Немного долго, но это работает.Как и другой вариант.

0 голосов
/ 25 июня 2012

вы можете использовать

A = нули (6,6)

для создания матрицы 6 * 6 со всем массивом ноль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...