Блочно-диагональное связывание матриц

Имеет ли R базовую функцию для связывания матриц в блочно-диагональной форме?

Следующее выполняет эту работу, но я хотел бы знать, есть ли стандартный способ:

a <- matrix(1:6, 2, 3) b <- matrix(7:10, 2, 2) rbind(cbind(a, matrix(0, nrow=nrow(a), ncol=ncol(b))), cbind(matrix(0, nrow=nrow(b), ncol=ncol(a)), b)) # [,1] [,2] [,3] [,4] [,5] #[1,] 1 3 5 0 0 #[2,] 2 4 6 0 0 #[3,] 0 0 0 7 9 #[4,] 0 0 0 8 10 

One Solution collect form web for “Блочно-диагональное связывание матриц”

adiag из пакета magic делает то, что вы хотите:

 library(magic) adiag(a,b) [,1] [,2] [,3] [,4] [,5] [1,] 1 3 5 0 0 [2,] 2 4 6 0 0 [3,] 0 0 0 7 9 [4,] 0 0 0 8 10 

Кроме того, вы можете использовать пакет Matrix и функцию bdiag

 library(Matrix) bdiag(a,b) 4 x 5 sparse Matrix of class "dgCMatrix" [1,] 1 3 5 . . [2,] 2 4 6 . . [3,] . . . 7 9 [4,] . . . 8 10 

который возвращает разреженную матрицу и которая может быть более эффективной. Используйте as.matrix(bdiag(a,b)) чтобы получить обычный.

  • Подмножество и ggplot2
  • Преобразование разделенных запятыми элементов в столбцы
  • установить графики ggplot, чтобы иметь одинаковую ширину оси x и одно и то же пространство между точками
  • Использование двух масштабных gradleиентов цвета ggplot2
  • Последовательность повторяющихся значений в R
  • Частота отсчета в R
  • Как кратко написать формулу со многими переменными из фрейма данных?
  • Соберите несколько наборов столбцов
  • Ошибка анализа JSON-файла с помощью пакета jsonlite
  • Замена символьных значений NA в кадре данных
  • Всестороннее исследование типов вещей в «режиме» и «classе» и «типе» недостаточно
  • Interesting Posts

    Как выровнять название в центре ActionBar в теме по умолчанию (Theme.Holo.Light)

    Как динамически распределять пространство памяти для строки и получать эту строку от пользователя?

    JPA Query выбирает только определенные столбцы, не используя Query Query?

    Вызовите UrlHelper в моделях ASP.NET MVC

    Невозможно получить изменяемую ссылку при повторении рекурсивной структуры: не может заимствовать как изменчивый более одного раза за раз

    Не удается перезагрузить компьютер с помощью Win10 и нет доступа к BIOS

    SCSS / SASS: как динамически генерировать список classов с разделяющими их запятыми

    Есть ли эквивалент MessageBox в WPF?

    Последствия отключения компьютера во время обновления Windows Vista («Не выключать компьютер»)?

    Тенденция Android View

    В Linux, какие точечные файлы и каталоги следует создать резервную копию?

    Как вычислить число 3D Morton (чередуйте биты 3 ints)

    Поиск полосы пропускания, используемой отдельными компьютерами в домашней сети

    Вычислите размер представления списка или как рассказать, чтобы он полностью расширялся

    Form_Load () ‘event’ или Override OnLoad ()

    Давайте будем гением компьютера.