R противоположно матричному делению - PullRequest
0 голосов
/ 14 июля 2020

В настоящее время я использую функцию умножения матриц% *%, однако я использую sh для обратного (матричное деление), а% /% предназначен для целочисленного деления. Я просматривал Интернет и не нашел способа "ненадлежащего" деления матрицы, есть ли для этого встроенная функция в R?

Ура,

Ответы [ 2 ]

3 голосов
/ 14 июля 2020

Думаю, вы ищете solve:

set.seed(42)
m1 <- matrix(rnorm(9), 3)
m2 <- matrix(rexp(9), 3)

m3 <- m1 %*% m2

m4 <- solve(m1, m3) #m3 "divided" by m1

all.equal(m2, m4)
#[1] TRUE

m5 <- m3 %*% solve(m2) #m3 "divided" by m2
all.equal(m1, m5)
#[1] TRUE

Конечно, это не может быть решено для всех матриц m3 и m1 соответственно. m2 и лучшие алгоритмы могут существовать в зависимости от этих матриц. Изучите линейную алгебру.

0 голосов
/ 14 июля 2020

Думаю, вы можете использовать ginv из пакета MASS

set.seed(1)

A <- matrix(rnorm(10), 2)
B <- matrix(rnorm(30), 5)

C <- A %*% B

all.equal(A,C%*%MASS::ginv(B))
# [1] TRUE
...