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

问题描述 投票:0回答:1

您好,我试图从此处运行示例: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软件包中)

[任何提示或技巧?谢谢。

r matrix-multiplication rscript cvxr
1个回答
0
投票

尝试用C<-c(2,4,3)替换C <- matrix(c(2,4,3), nrow = 1)行。这遵循该网页上后面示例的语法。后面的示例对我也不起作用-无法理解x3 <- Int(1)代码。尚未找到作者(Jordan Barry)的详细信息,但已与合著者(Chris Thron)联系,请注意,该示例目前无法正常工作-可能是由于CVXR末尾的更新。

© www.soinside.com 2019 - 2024. All rights reserved.