如何在C++中实现复数矩阵运算

这篇具有很好参考价值的文章主要介绍了如何在C++中实现复数矩阵运算。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

复数:
需要包含头文件:

#include<complex>
complex<Variable_Type>Typename;//复数模板类

两种赋值方法

	complex<double> t11;
    t11.real(1.383);
    t11.imag(-3.83);
    complex<double>t22(3.54, 2.947)

矩阵:
VS2019需要自己安装Eigen库:(41条消息) 基于VS2019的Eigen库安装详解_人狮子的博客-CSDN博客_eigen库安装vs
使用Eigen库
Eigen::Matrix< Scalar_, Rows_, Cols_, Options_, MaxRows_, MaxCols_ >
可以看到Matrix这个类有六个参数,下面是六个参数的具体解释
Scalar_:类型参数,默认的参数类型(float,int,double)等等都是可以用的,复杂地,可以参考官网的Using custom scalar types
Rows_:行数
Cols_:列数
行数和列数可以设置为静态,即在编译的时候就确定大小。同样地,也可以选择设置为Dynamic,可以在运行的时候才确定大小。
Opitions:存储方式,存储方式分为column-major and row-major.因为在计算机内存存放二维的数据类型都是线性内存的,参考二维数组的存放方式。默认的存储方式是column-major,按照默认列存储的方式存储,其效率会更高。
MaxRows_设置最大行数,默认为Rows_的值
MaxCols_设置最大列数,默认为Cols_的值,这两个参数一般默认就行
因为Matrix类设置起来太麻烦了,官方自己设置一些typedefs,具体的可以看官网Global matrix typedefs
下面是我自己typedef的一些矩阵类型

typedef Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor> mat_d;
typedef Eigen::Matrix<int, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor> mat_i;
typedef Eigen::Matrix<std::complex<int>, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor> mat_complex_i;
typedef Eigen::Matrix<std::complex<double>, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor> mat_complex_d;

定义一个复数矩阵

void GetComplexMatrix()
{
    complex<double> t11;
    t11.real(1.383);
    t11.imag(-3.83);
    complex<double>t22(3.54, 2.947), 
        t33(-2.763, 3.178), t44(-5.3080, 1.65);//创建四个复数
    mat_complex_d mat2(2, 2);
    mat2 << t11, t22, t33, t44;
}

Matrix的一些成员函数的讲解
矩阵的大小可以用size()来获取,行数用rows()来获取,列数用cols()来获取
动态矩阵可以重新设置矩阵的大小(静态矩阵不行):使用resize()函数。
矩阵可以使用=来实现拷贝,如果左边是动态矩阵,那么左侧矩阵的大小将和右侧的保持一致。
更多地可以查看官方手册!!文章来源地址https://www.toymoban.com/news/detail-609987.html

到了这里,关于如何在C++中实现复数矩阵运算的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++实验】运算符重载(两个矩阵相加)

    运算符重载 概念 对已有的运算符赋予新的含义,用一个运算符表示不同功能的运算,从而适用于用户自定义类型的数据(比如复数、矩阵等)之间的运算 运算符重载 方法 定义一个重载运算符函数,在需要时系统自动调用该函数,完成相应的运算。 运算符重载实质上是函数

    2024年02月02日
    浏览(38)
  • C++ 二维差分 二维前缀和逆运算 差分矩阵

    输入一个 n 行 m 列的整数矩阵,再输入 q 个操作,每个操作包含五个整数 x1,y1,x2,y2,c ,其中 (x1,y1) 和 (x2,y2) 表示一个子矩阵的左上角坐标和右下角坐标。 每个操作都要将选中的子矩阵中的每个元素的值加上 c 。 请你将进行完所有操作后的矩阵输出。 输入格式 第一行包含整数

    2024年02月21日
    浏览(52)
  • 【基础算法】矩阵的几种基本运算 & C++实现

            从线性代数中我们已知,两个矩阵可以进行加减乘运算,但矩阵之间没有除法运算。(下面以3×3矩阵为例):          矩阵的数乘运算类属与两矩阵相乘的一种特殊形式(数乘矩阵的这个数,我们可以将其化为对角线为该数,其余位置都为0的矩阵,再用该对

    2024年02月11日
    浏览(46)
  • C++借助Eigen库实现矩阵开方(开根号)运算

    在matlab中我们可以通过sqrtm()函数实现简单的矩阵开方运算,当使用C++时,可以通过以下函数实现。 1、添加头文件: 2、开方函数: 3、主函数调用 在matlab中我们可以通过sqrtm()函数实现简单的矩阵开方运算,当使用C++时,可以通过以上函数实现。

    2024年02月15日
    浏览(32)
  • 数据结构基础篇》》用c语言实现复数的八个基本运算

    数据结构开讲啦!!!🎈🎈🎈 本专栏包括: 抽象数据类型 线性表及其应用 栈和队列及其应用 串及其应用 数组和广义表 树、图及其应用 存储管理、查找和排序 将从简单的抽象数据类型出发,深入浅出地讲解复数,海龟作图 到第二讲线性表及其应用中会讲解,运动会分数

    2024年02月07日
    浏览(45)
  • C++数据结构稀疏矩阵运算(含加减乘及快速转置)

    题目: 内容:稀疏矩阵运算器 要求:使用三元组顺序表存储矩阵;实现矩阵的逆置、加、减、乘运算;具有相应的报错处理。 本人采用C++来书写该数据结构的题目,有兴趣的同学可以了解一下需要掌握一定的封装的能力。 类的结果存储如下所示: 加减法的函数内容如下所

    2023年04月10日
    浏览(36)
  • 【图像处理OpenCV(C++版)】——2.2 OpenCV之矩阵运算详解(全)

    前言 : 😊😊😊 欢迎来到本博客 😊😊😊 🌟🌟🌟 本专栏主要结合OpenCV和C++来实现一些基本的图像处理算法并详细解释各参数含义,适用于平时学习、工作快速查询等,随时更新。 😊😊😊 具体食用方式:可以点击本专栏【OpenCV快速查找(更新中)】–搜索你要查询的算子

    2024年02月03日
    浏览(68)
  • CCF-CSP真题《202305-2 矩阵运算》思路+python,c++满分题解

    想查看其他题的真题及题解的同学可以前往查看:CCF-CSP真题附题解大全 试题编号: 202305-2 试题名称: 矩阵运算 时间限制: 5.0s 内存限制: 512.0MB 问题描述: Softmax(Q×KTd)×V 是 Transformer 中注意力模块的核心算式,其中 Q、K 和 V 均是 n 行 d 列的矩阵,KT 表示矩阵 K 的

    2024年02月16日
    浏览(46)
  • C++定义复数类(Complex)

    题目描述: 定义一个复数类Complex,使得下面的代码能够工作: Complex c1(3, 5);        //用复数3+5i初始化c1 Complex c2 = 4.5;        //用实参4.5作为实部初始化c2,虚部为0 c1.add(c2);              //将c1与c2相加,结果保存在c1中 c1.show();               //将c1输出(这

    2023年04月10日
    浏览(30)
  • Rust 复数运算,重载加减乘除运算

    复数定义 由实数部分和虚数部分所组成的数,形如a+bi 。 其中a、b为实数,i 为“虚数单位”,i² = -1,即虚数单位的平方等于-1。 a、b分别叫做复数a+bi的实部和虚部。 当b=0时,a+bi=a 为实数; 当b≠0时,a+bi 又称虚数; 当b≠0、a=0时,bi 称为纯虚数。 实数和虚数都是复

    2024年02月13日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包