r - R CVXR 矩阵乘法 %*% mul_dims_promote(lh_dim, rh_dim) 中的错误:尺寸不兼容
问题描述
您好,我正在尝试从这里运行示例: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<-c(2,4,3)
用C <- matrix(c(2,4,3), nrow = 1)
. 这遵循该网页上后面示例的语法,然后该示例对我有用。后面的示例现在也适用于我,(提示 Jordan) - 将 'x3 <- Int(1)' 替换为 'x3 <-Variable(1, integer=TRUE)',尽管链接可能会很快更新。
推荐阅读
- java - 具有动态大小的 Java 整数数组
- slack - 输入 :) 作为 slack 上的文本
- r - 如何引用多个数据框列来计算 R 中的加权平均值的新列
- python - 以父子格式将excel数据导入django数据库
- apache-spark - 为什么这个简单的 Spark 应用程序会创造这么多工作?
- typescript - 通过 ClearScript 将 System.Data.DataTable 暴露到 JS 中后,我如何为 TypeScript 表达它的对象?
- angular - 离子选择/离子标签未正确显示,属性在 Ionic 4 中浮动
- django - 如何在 django 中访问模板内的选定数据?
- flutter - 模仿 iOS 13 全屏对话框
- java - 使用 InputStream 下载大文件