C++ Eigen矩阵库矩阵乘法

以下实现的是一个描述子降维从256降到32,一个简单的矩阵乘法实现
(N,256)*(256,32)=(N,32)

#include <Eigen/Core> //Eigen矩阵乘法
start7 = get_current_time();
float* new_values1_after_NMS = new float[kp_nums*256];
for(int kp_index=0;kp_index<kp_nums;kp_index++)
{
    for(int i=0;i<256;i++)
    {
        GET(new_values1_after_NMS,kp_index,i)=GET_VALUE(new_values1,i,keypoint[kp_index].first,keypoint[kp_index].second);
    }
}

//动态创建矩阵,即运行时创建,不是编译时创建. shape=(kp_nums,256)
//RowMajor表示行主序,即按行遍历
MatrixXf descriptor_eigen = Map<Matrix<float,Dynamic,Dynamic,RowMajor>>(new_values1_after_NMS,kp_nums,256); 
 
// shape=(256,32)
MatrixXf pca_weight_eigen = Map<Matrix<float,Dynamic,Dynamic,RowMajor>>(pca_weight,256,32);
MatrixXf new_descriptor_eigen = descriptor_eigen*pca_weight_eigen;
end=  get_current_time();
for(int i=0;i<5;i++)
{
    print(new_descriptor_eigen(0,i));
}
print("PCA Eigen cost time:",double(end-start7));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值