R Умножение матрицы CVXR% *% Ошибка в mul_dims_promote (lh_dim, rh_dim): несовместимые измерения - PullRequest
2 голосов
/ 29 марта 2020

Здравствуйте, я пытаюсь запустить пример отсюда: http://rtutorial.altervista.org/lp_solvers.html

Фрагмент и проверка, где он идет не так:

library(CVXR)
#create Variable objects that can be manipulated by the solver.
x<-Variable(3)
#coefficients for objective function
C<-c(2,4,3)

#problem:
C %*% x

Ошибка: ошибка в mul_dims_promote (lh_dim, rh_dim): несовместимые размеры

> x
[1] "Variable((3, 1), nonneg=FALSE, nonpos=FALSE, pos=FALSE, neg=FALSE, complex=FALSE, imag=FALSE, symmetric=FALSE, diag=FALSE, PSD=FALSE, NSD=FALSE, hermitian=FALSE, boolean=FALSE, integer=FALSE, )"
> C
[1] 2 4 3
> 
> dim(x)
[1] 3 1
> dim(C)
NULL
> 
> class(x)
[1] "Variable"
attr(,"package")
[1] "CVXR"
> class(C)
[1] "numeric"

Проблема может быть в

%*%

, который определен в трех разных пакетах: Справка по topi c '% * % 'был найден в следующих пакетах:

Умножение матриц (в базе пакетов в библиотеке / usr / lib / R / library) Манипулирование матрицей с помощью gmp (в пакете gmp в библиотеке / home / gnowak / R / x86_64 -p c - linux -gnu-library / 3.6) Matrix (Cross) продукты (транспонирования) (в пакете Matrix в библиотеке / home / gnowak / R / x86_64-p c - linux -gnu -библиотека / 3,6)

Есть подсказки или советы? Спасибо.

1 Ответ

0 голосов
/ 30 марта 2020

Попробуйте заменить строку C<-c(2,4,3) на C <- matrix(c(2,4,3), nrow = 1). Это соответствует синтаксису более позднего примера на этой веб-странице, и тогда этот пример работает для меня. Более поздний пример теперь работает и для меня, (совет Jordan) - замените 'x3 <- Int (1)' на 'x3 <-Variable (1, integer = TRUE)', хотя ссылка, вероятно, будет вскоре обновлена. </p>

...