Скажем, у меня есть три разные подматрицы 2x2, и я хочу создать большую матрицу 6x6 в Matlab, в которой три подматрицы появляются на диагонали, а все остальные значения равны 0. Как я могу это сделать, не вводя все нули явно? Я только начал изучать MatLab, и я действительно начинающий. Если бы кто-то мог помочь мне с этим, я был бы очень благодарен! Позже я должен сделать это с большим количеством матриц, и ввод всех нулей становится болью!
Предположим, что ваши матрицы названы M1, M2, M3, напишите blkdiag(M1, M2, M2). Если какая-либо из ваших матриц будет разреженной, будет и результат. В противном случае он будет плотным.
M1
M2
M3
blkdiag(M1, M2, M2)
Также можно определить 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.Немного долго, но это работает.Как и другой вариант.
a=zeros(6);
a(1:2,1:2)=a11, a(3:4,3:4)=a22,a(5:6,5:6)=a33
вы можете использовать
A = нули (6,6)
для создания матрицы 6 * 6 со всем массивом ноль.