C++ 使用dlib::Matrix分配矩阵乘法值
这是有效的(矩阵加法)C++ 使用dlib::Matrix分配矩阵乘法值,c++,matrix,operator-keyword,dlib,C++,Matrix,Operator Keyword,Dlib,这是有效的(矩阵加法) dlib::矩阵a; dlib::矩阵b; dlib::矩阵rez; a=1.0,1.0,1.0,1.0; b=3.0,3.0,3.0,3.0; rez=a+b; 但事实并非如此(将矩阵乘法结果分配给先前定义的矩阵) dlib::矩阵a; dlib::矩阵b; dlib::矩阵rez; a=1.0,1.0,1.0,1.0; b=3.0,3.0,3.0,3.0; rez=a*b; 可以指定矩阵乘法结果,但前提是我将结果指定给新的dlib::Matrix dlib::ma
dlib::矩阵a;
dlib::矩阵b;
dlib::矩阵rez;
a=1.0,1.0,1.0,1.0;
b=3.0,3.0,3.0,3.0;
rez=a+b;
但事实并非如此(将矩阵乘法结果分配给先前定义的矩阵)
dlib::矩阵a;
dlib::矩阵b;
dlib::矩阵rez;
a=1.0,1.0,1.0,1.0;
b=3.0,3.0,3.0,3.0;
rez=a*b;
可以指定矩阵乘法结果,但前提是我将结果指定给新的dlib::Matrix
dlib::matrix<double> rez = a*b;
dlib::矩阵rez=a*b;
如何使dlib::matrix乘法工作,以便将结果分配给先前定义的dlib::matrix
使用(MinGW.org GCC Build-2)9.2.0;Win10和Visual Studio代码
实际错误稍长,总结如下:
In file included from ...\dlib-master\dlib\matrix\matrix.h:17, from kalman_filtr.cpp:3:
...\dlib-master\dlib\matrix\matrix_op.h: In instantiation of
'struct dlib::matrix_traits<dlib::matrix_op<dlib::op_pointer_to_col_vect<double> > >':
...\dlib-master\dlib\matrix\matrix_exp.h:130:51: required from ...
... required from here
...\dlib-master\dlib\matrix\matrix_op.h:20:35: error: invalid use of incomplete type
'struct dlib::op_pointer_to_col_vect<double>' typedef typename OP::type type;
包含在…\dlib master\dlib\matrix\matrix.h:17、kalman_filter.cpp:3中的文件中:
…\dlib master\dlib\matrix\matrix_op.h:在
'struct dlib::matrix_traits':
…\dlib master\dlib\matrix\matrix\u exp.h:130:51:需要从。。。
... 从这里开始需要
…\dlib master\dlib\matrix\matrix_op.h:20:35:错误:不完整类型的使用无效
'struct dlib::op_pointer_to_col_vect'typedef typename op::type;
问题是如何使rez=a+b代码>工作?a=1.0,1.0,1.0,1.0代码>如果这行得通(我认为它行得通),这可能是我本周看到的最可怕的代码(最小惊喜原则)。@RichardCriten Eigen在列表初始化之前也有类似的辞职。事实上,我知道初始化看起来很糟糕,但这只是为了显示问题而创建的测试代码。我可以在每个矩阵行中换行,但为了代码长度,我没有。我还没有找到任何其他方法来初始化矩阵,请告诉我是否有更好的方法@RichardCritten@RichardCritten这是一种新的东西,每天我希望我今天还并没有学会。。。
dlib::matrix<double> rez = a*b;
In file included from ...\dlib-master\dlib\matrix\matrix.h:17, from kalman_filtr.cpp:3:
...\dlib-master\dlib\matrix\matrix_op.h: In instantiation of
'struct dlib::matrix_traits<dlib::matrix_op<dlib::op_pointer_to_col_vect<double> > >':
...\dlib-master\dlib\matrix\matrix_exp.h:130:51: required from ...
... required from here
...\dlib-master\dlib\matrix\matrix_op.h:20:35: error: invalid use of incomplete type
'struct dlib::op_pointer_to_col_vect<double>' typedef typename OP::type type;