mul_dims_promote(lh_dim, rh_dim) 中的 R CVXR 矩阵乘法 %*% 错误:尺寸不兼容

R CVXR matrix multiplication %*% Error in mul_dims_promote(lh_dim, rh_dim) : Incompatible dimensions

您好,我正在尝试 运行 来自此处的示例: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"

问题可能出在

%*%

在三个不同的包中定义: 在以下包中找到关于主题“%*%”的帮助:

矩阵乘法 (在库 /usr/lib/R/library 的基础包中) 使用 gmp 进行矩阵操作 (在库 /home/gnowak/R/x86_64-pc-linux-gnu-library/3.6 中的 gmp 包中) 矩阵(交叉)乘积(转置) (在库 /home/gnowak/R/x86_64-pc-linux-gnu-library/3.6 中的 Matrix 包中)

有什么提示或技巧吗?谢谢。

尝试用 C <- matrix(c(2,4,3), nrow = 1) 替换行 C<-c(2,4,3)。这遵循该网页上后面示例的语法,然后该示例对我有用。后面的例子现在也适用于我,(帽子提示 Jordan)- 将 'x3 <- Int(1)' 替换为 'x3 <-Variable(1, integer=TRUE)',尽管 link 可能是即将更新。