error C2338: YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES

使用Eigen时报以下错误:

复制代码
error C2338: YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES

参考https://blog.csdn.net/Charles_ke/article/details/89067150得知应该是Eigen矩阵维度不相同导致的问题

通过注释相关代码定位到报错的位置:

复制代码
for (int i = 0; i < loop_size; i++) {
            Vector3d pos = current_V.row(mainLoop[i]);
            new_vertices.row(i) = pos + expansionDirections.row(i);
        }

由于expansionDirections.row(i)既可以代表行向量又可以代表列向量,使其与列向量pos相加会出现维度不兼容的情况

解决办法如下,将expansionDirections.row(i)赋值为与pos一样的列向量,再与pos进行运算,不再报错

复制代码
for (int i = 0; i < loop_size; i++) {
            Vector3d pos = current_V.row(mainLoop[i]);
            Vector3d dir = expansionDirections.row(i);
            new_vertices.row(i) = pos + dir;
        }
相关推荐
给大佬递杯卡布奇诺6 分钟前
FFmpeg 基本API avio_read函数内部调用流程分析
c++·ffmpeg·音视频
liulilittle25 分钟前
Y组合子剖析:C++ 中的递归魔法
开发语言·c++·编程语言·函数式编程·函数式·函数编程·y组合子
史迪奇_xxx9 小时前
10、一个简易 vector:C++ 模板与 STL
java·开发语言·c++
我是华为OD~HR~栗栗呀10 小时前
华为od-21届考研-C++面经
java·c语言·c++·python·华为od·华为·面试
oioihoii10 小时前
C++ 中的类型转换:深入理解 static_cast 与 C风格转换的本质区别
java·c语言·c++
小妖66611 小时前
vscode 怎么运行 c++ 文件
开发语言·c++
lingran__11 小时前
算法沉淀第三天(统计二进制中1的个数 两个整数二进制位不同个数)
c++·算法
小冯记录编程12 小时前
深入解析C++ for循环原理
开发语言·c++·算法
磨十三12 小时前
C++ 容器详解:std::list 与 std::forward_list 深入解析
开发语言·c++·list
今麦郎xdu_12 小时前
【Linux系统】命令行参数和环境变量
linux·服务器·c语言·c++