笔记93:关于 C++ 中的 Eigen 库
注意1:Eigen 是一个基于 C++ 模板的线性代数库,以支持在 C++ 中进行矩阵运算;
注意2:要在 C++ 中使用 Eigen,需要在在程序开始前要包含所需头文件路径;
#include <Eigen>
a
a
基础用法汇总
定义向量
Eigen::Vector2d x(1,2) // 2维向量
Eigen::Vector3d x(1,2,3) // 3维向量
Eigen::VectorXd x(n) // 自定义n维向量
定义矩阵
Eigen::Matrix2d mat // 2维矩阵
Eigen::Matrix3d mat // 3维矩阵
Eigen::Matrix4d mat // 4维矩阵
Eigen::MatrixXd mat(m,n) // 自定义m行,n列矩阵
Eigen::Matrix <double, m, n> mat; // 自定义m行,n列矩阵
初始化特殊矩阵
Eigen::MatrixXd::Identity(m, n); //单位矩阵
Eigen::MatrixXd::Zero(m, n); //全零矩阵
Eigen::MatrixXd::Ones(m, n); //全一矩阵
Eigen::MatrixXd::Random(m, n); //随机矩阵
注意:如果想得到一个特殊矩阵,那么要先将矩阵的形状定义出来,然后再给这个矩阵胚子赋值,使其成为特殊矩阵;如下示例;
Eigen::Matrix3d mat; //先定义
Eigen::MatrixXd::Identity(m, n); //后赋值(初始化)
对向量/矩阵赋值
Eigen::VectorXd x(n) //先定义
x(1) = 2; //后赋值
Eigen::MatrixXd mat(2,2) //先定义
mat << 1,2,3,4; //赋值方式1
mat(0,1) = 2 //赋值方式2
矩阵运算
注意:对于加减乘除运算,定义矩阵/向量时所调用的类,已经将这些基础运算重载过了,只要两边都是符合要求的矩阵/向量类型,就可以直接使用这些操作符进行矩阵运算;
mat.inverse(); //逆矩阵
mat.dot(w); //向量mat点积向量w
mat.cross(w); //向量mat叉乘向量w
mat.transpose() //转置
mat.norm() //向量求模,矩阵范数
矩阵属性
vec.size(); //访问向量长度
mat.rows(); //访问矩阵行数
mat.cols(); //访问矩阵列数
mat.block<m,n>(i,j) //矩阵块操作,从i,j开始,取m×n大小的矩阵
mat.minCoeff(); //输出矩阵中最大的元素
mat.maxCoeff(); //输出矩阵中最小的元素
MatrixXd mMat(4,4);
mMat << 11, 10, 13, 15,3, 24, 56, 1,2, 12, 45, 0,8, 5, 6, 4;
double min = mMat.minCoeff(); //输出0
double max = mMat.maxCoeff(); //输出56
a
a
参考文章:
- [C++]Eigen库常用函数_eigen::vector2d-CSDN博客
- Eigen库使用之矩阵的最大/小值及其位置_maxcoeff-CSDN博客
相关文章:
笔记93:关于 C++ 中的 Eigen 库
注意1:Eigen 是一个基于 C 模板的线性代数库,以支持在 C 中进行矩阵运算; 注意2:要在 C 中使用 Eigen,需要在在程序开始前要包含所需头文件路径; #include <Eigen> a a 基础用法汇总 定义向量 E…...
【微服务】部署mysql集群,主从复制,读写分离
两台服务器做如下操作 1.安装mysqldocker pull mysql:5.72.启动以及数据挂载 mkdir /root/mysql/data /root/mysql/log /root/mysql/conf touch my.conf //mysql的配置文件docker run --name mysql \ -e MYSQL_ROOT_PASSWORD123456 \ -v /root/mysql/data:/var/lib/mysql \ -v…...
【Java】设计一个支持敏感数据存储和传输安全的加解密平台
一、问题解析 在一个应用系统运行过程中,需要记录、传输很多数据,这些数据有的是非常敏感的,比如用户姓名、手机号码、密码、甚至信用卡号等等。这些数据如果直接存储在数据库,记录在日志中,或者在公网上传输的话&…...
iOS AVFoundation 音视频源码分享
引言 在现代移动开发中,音视频处理是一个不可忽视的重要领域。iOS 提供了强大的 AVFoundation 框架,使开发者能够轻松实现音视频录制、播放、编辑等功能。无论是创建高效的视频播放器,还是实现复杂的音频处理,AVFoundation 都能提…...
Ubuntu开发入门之“制作Ubuntu rootfs根文件系统镜像“
Ubuntu开发入门之“制作Ubuntu rootfs根文件系统镜像” 问题描述解决方法1.首先从官网下载最基础的ubuntu base核心文件,ubuntu core.2.接下来就是制作一个基础功能的根文件系统3.修改可用源4.接下来就是挂载根文件系统,进行模拟安装应用5.根文件系统安装常用的工具和配置用户…...
基于FPGA的SystemVerilog练习
文章目录 一、认识SystemVerilogSystemVerilog的语言特性SystemVerilog的应用领域SystemVerilog的优势SystemVerilog的未来发展方向 二、流水灯代码流水灯部分testbench仿真文件 三、用systemVerilog实现超声波测距计时器测距部分led部分数码管部分采样部分顶层文件引脚绑定效果…...
【数据结构】详解堆的基本结构及其实现
文章目录 前言1.堆的相关概念1.1堆的概念1.2堆的分类1.2.1小根堆1.2.2大根堆 1.3堆的特点堆的实用场景 2.堆的实现2.1初始化2.2插入2.3堆的向上调整2.4删除2.5堆的向下调整2.6判空2.7获取堆顶元素2.8销毁 3.堆排序3.1实现3.2堆排序的时间复杂度问题 前言 在上一篇文章中&#…...
python无限弹窗的代码
一个简单的Python代码示例,用于在特定的时间间隔内显示一个简单的弹窗。这个代码使用了Python的tkinter库来创建一个简单的GUI窗口。 python import tkinter as tk import time def popup(): popup_window.deiconify() # 显示窗口 popup_window.wait_window() # 等…...
多线程新手村5--线程池
1.1 线程池是什么 线程诞生的意义是因为进程的创建/销毁开销太大,所以使用线程提高代码的执行效率;那如果想要进一步提升执行效率,该怎么办呢?有一个方法是使用线程池。 首先,什么是线程池:池就是池子&am…...
数据库 mysql 的彻底卸载
MySQL卸载步骤如下: (1)按 winr 快捷键,在弹出的窗口输入 services.msc,打开服务列表。 (2)在服务列表中, 找到 mysql 开头的所有服务, 右键停止,终止对应的…...
Meterpreter工具使用
Meterpreter属于stage payload,在Metasploit Framework中,Meterpreter是一种后渗透工具,它 属于一种在运行过程中可通过网络进行功能扩展的动态可扩展型Payload。这种工具是基于“内存DLL注 入”理念实现的,它能够通过创建一个新进…...
第四讲 单片机STC89C52+RA8889代码移植范例(包含API接口)
本次介绍单片机STC89C52RA8889代码移植范例,该范例已将RA8889的API移植好了,下方提供下载地址。 硬件平台:89C52RA8889 采用SPI通信方式 (已测试通过) 上一讲已经阐述RA8889移植到51单片机的基本方法,本讲增加了API…...
QT 音乐播放器【一】 显示音频级别指示器
文章目录 效果图概述代码总结 效果图 概述 QMediaPlayer就不介绍了,就提供了一个用于播放音频和视频的媒体播放器 QAudioProbe 它提供了一个探针,用于监控音频流。当音频流被捕获或播放时,QAudioProbe 可以接收到音频数据。这个类在需要访问…...
【MATLAB源码-第220期】基于matlab的Massive-MIMO误码率随着接收天线变化仿真采用ZF均衡和QPSK调制。
操作环境: MATLAB 2022a 1、算法描述 1. 系统背景与目标 无线通信系统的发展极大地推动了现代通信技术的进步,从移动通信到无线局域网,甚至是物联网,均依赖于无线通信系统的高效和可靠性。在无线通信系统中,核心目…...
【前端】政务服务大数据可视化监控平台(源码+html+css+js)
👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…...
【网关】工业智能网关-02
一 公司简介 保定飞凌嵌入式技术有限公司始于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内最早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内一流的软硬件研发团队,在北京…...
【C语言】动态内存管理技术文档
【C语言】动态内存管理技术文档 目录 【C语言】动态内存管理技术文档 一、内存管理基础...
低空经济的意义所在
发展低空经济对于推动经济发展、促进产业升级、降低运输成本、构建综合交通系统等方面都具有重要意义。低空经济对推动经济发展提供新动能。低空经济作为新兴产业,具有巨大的发展潜力,能够带动投资、促进消费,为经济增长注入新动力。除此之外…...
DNF手游攻略:0氪攻略,转职技巧与避坑指南!
在DNF手游的冒险旅程中,角色的转职是一次重要的成长经历。通过转职,玩家可以获得全新的技能和属性,提升自己在地下城中的战斗力。本文将为您介绍转职后的关键技巧和日常任务,帮助您更好地适应新的职业身份,成为地下城中…...
周报 | 24.5.27-24.6.2文章汇总
为了更好地整理文章和发表接下来的文章,以后每周都汇总一份周报。 周报 | 24.5.20-24.5.26文章汇总-CSDN博客 集智书童 | YOLOv10开源|清华用端到端YOLOv10在速度精度上都生吃YOLOv8和YOLOv9_yolov8 yolov10-CSDN博客 机器之心 | 清华接手,…...
一键生成爆炸图:Nano-Banana拆解引擎在产品说明书制作中的应用
一键生成爆炸图:Nano-Banana拆解引擎在产品说明书制作中的应用 1. 产品拆解可视化的行业痛点 在产品说明书、维修手册和教育材料的制作过程中,清晰展示产品内部结构和组件关系是至关重要的。传统方法通常面临三大挑战: 3D建模成本高&#…...
标题诊断报告如何与其他 SEO 数据结合分析
标题诊断报告在SEO中的重要性 在当今的数字营销世界中,标题诊断报告是每一个SEO优化者都必须了解和运用的工具。标题不仅是吸引用户点击的关键因素,也是搜索引擎评估页面相关性的重要元素。掌握如何有效利用标题诊断报告,可以帮助你提高网站…...
影墨·今颜模型Win11/Win10系统UI风格适配与生成测试
影墨今颜模型Win11/Win10系统UI风格适配与生成测试 最近在折腾桌面美化,突然冒出一个想法:现在AI生成图片这么厉害,能不能让它直接帮我生成一套风格统一的系统UI元素呢?比如Win11那种清爽现代的图标,或者Win10那种经典…...
Phi-4-reasoning-vision-15B实操手册:强约束提示词设计与错误行为规避
Phi-4-reasoning-vision-15B实操手册:强约束提示词设计与错误行为规避 1. 引言:当视觉模型“自作主张”时,我们该怎么办? 你上传了一张软件界面的截图,想问问某个按钮是干什么用的。结果模型没回答你的问题ÿ…...
别再死记硬背了!用Codesys可视化玩转按钮和指示灯:5个工业场景实战案例拆解(含配方管理思路)
Codesys可视化实战:5个工业场景下的按钮与指示灯高阶应用 在工业自动化领域,人机界面(HMI)的设计直接影响操作效率和系统可靠性。传统PLC编程往往过于关注功能实现而忽视交互体验,导致许多工业现场的操作面板充斥着杂乱无章的按钮和难以理解的…...
SGLang-v0.5.6应用教程:快速构建API服务,支持约束解码生成指定格式
SGLang-v0.5.6应用教程:快速构建API服务,支持约束解码生成指定格式 1. SGLang简介与核心能力 SGLang(Structured Generation Language)是一个专注于大模型推理优化的高性能框架。它通过创新的架构设计,有效解决了传统…...
YOLO12与YOLO11对比:新一代模型在精度和速度上有哪些提升?
YOLO12与YOLO11对比:新一代模型在精度和速度上有哪些提升? 1. 引言 目标检测技术作为计算机视觉领域的核心任务之一,其发展一直备受关注。YOLO(You Only Look Once)系列模型因其出色的实时性能而广受欢迎。2025年,Ultralytics推…...
Python高效处理字符串去重的5种实用技巧
1. 字符串去重的核心逻辑与应用场景 字符串去重是数据处理中最基础却高频的操作之一。想象你手里有一串钥匙,其中几把是重复的,去重就是帮你挑出唯一的那几把。在Python中处理用户输入、日志清洗或数据预处理时,我经常遇到需要去除重复字符的…...
从DH参数到3D动画:手把手教你用SimMechanics在Simulink里‘拼’出一个六轴机械臂
从DH参数到3D动画:手把手教你用SimMechanics在Simulink里‘拼’出一个六轴机械臂 刚接触机器人学的同学常会遇到这样的困境:DH参数表背得滚瓜烂熟,但面对真实的机械臂结构时,那些α、a、d、θ参数突然变得抽象难懂。我在研究生阶段…...
Leaflet 结合 leaflet-velocity 实现动态风场可视化的实战指南
1. 从零开始搭建风场可视化环境 第一次接触风场可视化时,我被那些动态流动的粒子效果深深吸引。作为Web地图开发中最酷炫的效果之一,用Leaflet实现风场展示其实比你想象的简单得多。我们先从最基础的环境搭建说起。 我推荐使用VSCode作为开发工具&#x…...
