Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用dlib::Matrix分配矩阵乘法值_C++_Matrix_Operator Keyword_Dlib - Fatal编程技术网

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;