当前位置: 首页 > article >正文

GAMES101:Assignment 0:Linear Algebra Eigen

EigenEigen是一个用于线性代数运算的C模板库重载了-*等运算符实现了特殊方法如dot()cross()对于Matrix class,运算符仅重载以支持线性代数运算加减法运算符左右侧的行列数必须分别相同它们的标量类型必须相同-#includeiostream#includeEigen/Denseintmain(){Eigen::Matrix2d a;//2*2矩阵a1,2,3,4;Eigen::MatrixXdb(2,2);//行列数自定义为2*2的矩阵b2,3,1,4;std::couta b \nabstd::endl;Eigen::Vector3dv(1,2,3);//3*1向量Eigen::Vector3dw(1,0,0);std::cout-v w - v \n-vw-vstd::endl;}输出结果a b 3 5 4 8 -v w - v -1 -4 -6数乘/除*/转置共轭共轭转置对于矩阵aa.transpose()转置矩阵a.conjugate()共轭矩阵a.adjoint()共轭转置对每个元素取复共轭再转置对于实数矩阵conjugate()共轭矩阵不做任何操作即adjoint()与transpose()等价transpose()与adjoint()返回的矩阵不会被记录可以用b a.transpose()但不能用a a.transpose()因为transpose()返回的表达式持有对a的引用赋值时会边读取a边写入a会导致未定义行为解决方法是使用a.transposeInPlace()将a的转置存储在a中同样有a.adjointInPlace()表达式模板Eigen使用表达式模板上述操作返回的是表达式对象而非实际矩阵如auto t a.transpose();t引用a的数据如果之后a被修改t的行为可能不符合预期解决方法是显式声明类型Eigen::Matrix2d t a.transpose();矩阵乘法 矩阵向量乘法*注意矩阵乘法中m m*m会被特殊处理成tmp m*m; m tmp;所以不会有混叠效应点乘和叉乘v.dot(w)返回值为标量v.cross(w)叉乘方向右手定则四指螺旋从a绕向b,大拇指方向为叉乘结果向量方向对于2*1向量的cross()v[v1,v2],w[w1,w2]v [v1,v2],w [w1,w2]v[v1,v2],w[w1,w2]的叉乘v.cross(w)的结果是v1w2−v2w1v1w2 - v2w1v1w2−v2w1基本算术运算#includeiostream#includeEigen/Denseusingnamespacestd;intmain(){Eigen::Matrix2d mat;mat1,2,3,4;coutHere is mat.sum(): mat.sum()endl;//求和sum 10coutHere is mat.prod(): mat.prod()endl;//乘积prod 24coutHere is mat.mean(): mat.mean()endl;//均值mean 2.5coutHere is mat.minCoeff(): mat.minCoeff()endl;//最小值minCoeff 1coutHere is mat.maxCoeff(): mat.maxCoeff()endl;//最大值maxCoeff 4coutHere is mat.trace(): mat.trace()endl;//矩阵的迹trace 5主对角线元素之和}minCoeff()与maxCoeff()存在变体可以返回最小/最大值的位置坐标Matrix3f mMatrix3f::Random();std::ptrdiff_t i,j;floatminOfMm.minCoeff(i,j);//返回最小值的位置i,jcoutHere is the matrix m:\nmendl;coutIts minimum coefficient (minOfM) is at position (i,j)\n\n;RowVector4i vRowVector4i::Random();intmaxOfVv.maxCoeff(i);//返回最大值的位置icoutHere is the vector v: vendl;coutIts maximum coefficient (maxOfV) is at position iendl;Here is the matrix m: -0.824 -0.199 0.634 0.924 -0.237 0.334 -0.0532 0.146 -0.779 Its minimum coefficient (-0.824) is at position (0,0) Here is the vector v: 1189641421 1350490027 -1044963589 1967513926 Its maximum coefficient (1967513926) is at position 3访问向量元素使用()运算符Eigen::Vector3dQ(1.7,4.1,1.0);doublexQ(0);// 第1个元素x坐标doubleyQ(1);// 第2个元素y坐标doublezQ(2);// 第3个元素齐次坐标中的1

相关文章:

GAMES101:Assignment 0:Linear Algebra Eigen

Eigen Eigen是一个用于线性代数运算的C模板库 重载了 - * 等运算符&#xff0c;实现了特殊方法如dot() cross() 对于Matrix class,运算符仅重载以支持线性代数运算 加减法 运算符左右侧的行列数必须分别相同&#xff0c;它们的标量类型必须相同- #include <iostream> #in…...

Python装饰器:从设计模式到实战应用

1. Python装饰器入门指南&#xff1a;从设计模式到实战应用在Python开发中&#xff0c;装饰器(Decorator)是一种强大而优雅的编程技术。它允许我们在不修改原始函数或类代码的情况下&#xff0c;动态地扩展其功能。这种技术源于经典的装饰器设计模式&#xff0c;但在Python中通…...

TVA时代企业IT工程师的转型之路(二十三)

前沿技术背景介绍&#xff1a;AI 智能体视觉系统&#xff08;TVA&#xff0c;Transformer-based Vision Agent&#xff09;&#xff0c;是依托Transformer架构与因式智能体所构建的新一代视觉检测技术。它区别于传统机器视觉与早期AI视觉&#xff0c;代表了工业智能化转型与视觉…...

免费开源AMD Ryzen处理器深度调试工具:终极指南

免费开源AMD Ryzen处理器深度调试工具&#xff1a;终极指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitcode.…...

移动端CV模型新选择:实测MobileViTv3在图像分类、分割、检测三大任务上的表现(附复现指南)

MobileViTv3实战评测&#xff1a;轻量化视觉Transformer在三大CV任务中的突破表现 当我们在移动设备上运行图像识别应用时&#xff0c;常常面临一个两难选择——要么接受低精度的轻量级模型&#xff0c;要么忍受高延迟的大型模型。MobileViTv3的出现打破了这一僵局&#xff0c;…...

贾子理论(Kucius Theory):掀翻旧学术规则的东方元科学范式革命

贾子理论&#xff08;Kucius Theory&#xff09;&#xff1a;掀翻旧学术规则的东方元科学范式革命摘要 贾子理论以“真理主权至上”颠覆西方“可证伪性”底层规则&#xff0c;构建公理化认知操作系统&#xff08;1-2-3-4-5架构&#xff09;&#xff0c;实现东方智慧与量子物理、…...

WPS 通配符神技:一键上标参考文献 + 中英文自动加空格

WPS 高效排版技巧&#xff1a;一键上标参考文献 & 中英文自动加空格 两个实用的 Word 通配符查找替换技巧&#xff0c;让你的学术文档瞬间专业&#xff01; 在撰写论文、报告或技术文档时&#xff0c;我们常常遇到两个排版痛点&#xff1a; 参考文献引用 [1] 没有上标&…...

基础数据结构——栈和队列

该篇内容来自作者观看b站青岛大学王卓老师的数据结构与算法基础课的个人笔记https://space.bilibili.com/40323036?spm_id_from333.788.b_765f7570696e666f.2 栈和队列 特点&#xff1a; 栈&#xff1a; 具有“先进后出”,”后进先出”的特性 队列&#xff1a; 具有“先进先出…...

从Cortex-M到Cortex-A:内存屏障(DMB/DSB/ISB)的使用差异与迁移心得

从Cortex-M到Cortex-A&#xff1a;内存屏障的思维升级与实践指南 当工程师从单片机开发转向Linux驱动或Android系统开发时&#xff0c;往往会遇到一个令人困惑的现象&#xff1a;同样的内存屏障指令&#xff0c;在Cortex-M上运行良好的代码&#xff0c;移植到Cortex-A平台后却出…...

实例化管理化技术对象池与依赖注入

实例化管理化技术&#xff1a;对象池与依赖注入的实践智慧 在现代软件开发中&#xff0c;高效管理对象实例是提升性能与可维护性的关键。对象池&#xff08;Object Pool&#xff09;通过复用已创建的对象减少资源开销&#xff0c;而依赖注入&#xff08;Dependency Injection,…...

Qianfan-OCR-4B算法原理浅析:从CNN到端到端文档理解

Qianfan-OCR-4B算法原理浅析&#xff1a;从CNN到端到端文档理解 1. 引言&#xff1a;当计算机开始"阅读"文档 想象一下&#xff0c;你面前有一份复杂的商业报告&#xff0c;里面有表格、段落文字、图表和手写批注。人类可以轻松理解这种混合内容&#xff0c;但对计…...

软考高项的“潜规则”:那些培训机构不会告诉你的真相

我做了3年软考高项备考调研&#xff0c;访谈过47位上岸学员、12位阅卷相关人士、8位培训机构老师。今天&#xff0c;我把那些“培训机构不会告诉你”的真相&#xff0c;一次性说清楚。真相一&#xff1a;论文不是“写”出来的&#xff0c;是“套”出来的这是最大的误区。很多人…...

VisionMaster

模板匹配设置&#xff1a;模板配置&#xff1a;粗糙尺度范围1~20&#xff0c;粗糙尺度越大&#xff0c;特征点越稀疏&#xff0c;匹配速度越快对比度阈值范围1~255&#xff0c;对比度阈值越大&#xff0c;被淘汰的特征点越多。对比度阈值就是说&#xff0c;边缘处的灰度差值&am…...

我用这套公式,把一份材料变成 5 平台爆款

本周 AI 热点集中爆发&#xff1a;GPT-5.5 今日发布登顶全榜、Cursor 估值突破 500 亿美元、MCP 协议成 Agent 标准通信层、Claude Opus 4.7 上线无人值守 Agent 模式——每一条都是内容创作的绝佳切入口。问题是&#xff1a;你如何在 24 小时窗口内&#xff0c;把这些热点变成…...

如何在2026年继续畅玩经典Flash游戏:终极CefFlashBrowser指南

如何在2026年继续畅玩经典Flash游戏&#xff1a;终极CefFlashBrowser指南 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 还在怀念那些经典的Flash游戏和互动课件吗&#xff1f;当主流浏览…...

request与response笔记

1.request继承体系2.request获取请求数据3.request通用方法获取请求参数目的就是找到一个通用的方法使他既可以用于get方式的请求,又可以用于post方式的请求第一种方法是把请求来的参数自动的1封装进一个map集合里,并且自动补充好键值对第二种方式是参数是数组情况下的参数值第…...

语言 × 计算机大一统:符号语法·语义锚定·语用边界

&#xff08;秦衍体系第五维终极闭环&#xff09; 前面四维&#xff1a;数学锁逻辑&#xff0c;物理锁因果&#xff0c;化学锁结构&#xff0c;生物锁本源。但人类所有失控、诱导、越狱、认知篡改&#xff0c;第一入口&#xff0c;永远是语言。现有大模型&#xff0c;本质是「语…...

Fluent材料库管理避坑指南:自定义材料的导入、导出与团队共享的正确姿势

Fluent材料库管理避坑指南&#xff1a;自定义材料的导入、导出与团队共享的正确姿势 在工程仿真领域&#xff0c;材料属性的准确性直接影响计算结果的可靠性。当团队协作进行复杂流体分析时&#xff0c;自定义材料库的管理往往成为被忽视的关键环节。一位资深CAE工程师曾分享过…...

为什么我们会忘记事情?记忆力和什么有关?

每个人都逃不开遗忘的困扰&#xff1a;刚想好的台词转头就忘、出门反复纠结有没有带钥匙、熟记的知识点考完就忘、熟人的名字卡在嘴边说不出来。我们总把遗忘当作大脑的缺陷&#xff0c;羡慕过目不忘的超强记忆力&#xff0c;抱怨大脑不靠谱。但从脑科学角度来说&#xff0c;遗…...

机器学习-第二章 KNN算法

标题 第二章 KNN算法 目录 KNN算法简介 KNN思想、分类和回归问题处理流程 KNN算法API介绍 分类、回归实现 距离度量 常用距离计算方法 特征预处理 归一化 标准化 鸢尾花识别案例 超参数选择方法 交叉验证、网格搜索、手写数字识别 学习目标 1.理解k近邻算法的思想 2.知道k近邻算…...

XUnity.AutoTranslator终极教程:3步让任何Unity游戏秒变中文版

XUnity.AutoTranslator终极教程&#xff1a;3步让任何Unity游戏秒变中文版 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾经因为语言障碍而错过优秀的日文、韩文或英文Unity游戏&#xff1f;XUn…...

STM32---项目学习日记

1.OLED现象&#xff1a;OLED 左上角第一列会完全点亮&#xff08;8 个像素全亮&#xff09;&#xff08;1&#xff09;oled.c#include "oled.h" #include "oledfont.h"extern I2C_HandleTypeDef hi2c1;//初始化命令 uint8_t CMD_Data[]{ 0xAE, 0x00, 0x10,…...

ZYNQ SDK调试避坑实录:从BANK电压到GIC中断,新手必踩的四个坑

ZYNQ SDK调试避坑实录&#xff1a;从BANK电压到GIC中断&#xff0c;新手必踩的四个坑 刚接触ZYNQ开发的工程师常会遇到这样的困惑&#xff1a;明明代码逻辑没问题&#xff0c;但外设就是不按预期工作。这时候往往不是软件的问题&#xff0c;而是硬件配置或底层细节在作祟。本文…...

别再乱升级libc6了!遇到`GLIBC_2.34 not found`错误,先试试这几种更稳妥的解决方案

当系统GLIBC版本不匹配时&#xff0c;五种安全解决方案深度解析 遇到GLIBC_2.34 not found这类错误时&#xff0c;许多开发者的第一反应是直接升级系统libc6库。这种看似直接的解决方案实际上隐藏着巨大风险——可能导致系统关键组件不兼容&#xff0c;甚至引发连锁崩溃。本文将…...

6G网络中的大模型与多模态感知通信技术解析

1. 6G网络中的大模型与多模态感知通信技术概述在移动通信技术从5G向6G演进的过程中&#xff0c;网络智能化成为核心发展方向。传统通信系统主要解决数据传输问题&#xff0c;而6G网络需要实现通信、感知与计算的深度融合。这一转变的关键在于大语言模型&#xff08;Large Langu…...

Xshell5一键激活,亲测可用

下载链接: https://pan.baidu.com/s/1PY0RnCcj4EDp6bV1TR5pig?pwdpis9 安装完后&#xff0c;将该监听文件复制到安装的根目录&#xff0c;覆盖原文件即可激活使用...

自动滴定装置及其驱动单元设计

摘 要 本文围绕自动滴定装置及其驱动单元设计展开研究。在自动滴定装置部分&#xff0c;首先进行制品材料选用分析&#xff0c;接着对装置进行测绘&#xff0c;并阐述成型设备选用&#xff0c;包括注塑机、模架的选择以及模具参数校核。随后拟定模具结构形式&#xff0c;涵盖型…...

桌面/在线/小程序三种抠图路线,2026 年选哪种更方便

同样是做去除背景这件事&#xff0c;2026 年在电脑上打开桌面软件、在浏览器里用一个在线工具、还是直接在微信小程序里完成&#xff0c;体验差别其实比很多人想象的要大。前两类工具功能堆积得多&#xff0c;但启动路径长、注册流程繁琐&#xff1b;而微信里的小程序路径更短&…...

别再手动调PID了!用STM32 MotorControl Workbench 5.4.4快速搞定FOC电机调试

STM32 MotorControl Workbench 5.4.4实战&#xff1a;三小时从零构建稳定FOC电机控制系统 当我在深圳一家无人机公司的研发实验室第一次接触FOC电机控制时&#xff0c;整个团队花了整整两周时间才让电机平稳运转。而现在&#xff0c;借助STM32 MotorControl Workbench 5.4.4&am…...

KoGPT大模型推理加速:FasterTransformer优化实践

1. KoGPT与FasterTransformer加速方案概述在韩国本土AI领域&#xff0c;Kakao Brain开发的KoGPT模型凭借其对韩语语境的特化处理能力&#xff0c;已成为最受关注的大语言模型之一。这个基于GPT-3架构的模型在理解韩语语法结构、惯用表达和文化背景方面展现出独特优势。然而当我…...