MATLAB矩阵运算

MATLAB矩阵运算矩阵定义MATLAB以矩阵作为数据操作的基本单位,这使得矩阵运算变得非常简捷、方便、高效。矩阵是由m×n个数av(i=1,2,…,m;j=1,2,…,n)排成的m行n列数表,记成:若m=n,则该矩阵为n阶矩阵(n阶方阵)。矩阵创建在键盘上直接按行方式输入矩阵是最方便、最常用的创建数值矩阵的方法,尤其适合较小的简单矩阵。在用此方法创建矩阵时,应当注意以下几点:输入矩阵时要以“[]”为其标识符号,矩阵的所有元素必须都在括号内。 矩阵同行元素之间由空格(个数不限)或…

大家好,又见面了,我是你们的朋友全栈君。

矩阵定义

MATLAB以矩阵作为数据操作的基本单位,这使得矩阵运算变得非常简捷、方便、高效。矩阵是由m×n个数av (i=1,2,…,m; j = 1,2,…,n)排成的m行n列数表,记成:

     watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc2hybHhscWw=,size_15,color_FFFFFF,t_70,g_se,x_16

若m=n,则该矩阵为n阶矩阵(n阶方阵)。

矩阵创建

在键盘上直接按行方式输入矩阵是最方便、最常用的创建数值矩阵的方法,尤其适合较小的简单矩阵。在用此方法创建矩阵时,应当注意以下几点:

  • 输入矩阵时要以“[ ]”为其标识符号,矩阵的所有元素必须都在括号内。
  • 矩阵同行元素之间由空格(个数不限)或逗号分隔,行与行之间用分号或回车键分隔。矩阵大小不需要预先定义。
  • 矩阵元素可以是运算表达式。
  • 若“[ ]”中无元素,表示空矩阵。
  • 如果不想显示中间结果,可以用“;”结束。

矩阵生成

矩阵的生成除了直接输入法,还可以利用M文件生成法和文本文件生成法等。

1.利用M文件创建

       当矩阵的规模比较大时,直接输入法就显得笨拙,出差错也不易修改。为了解决这些问题,可以将所要输入的矩阵按格式先写入一文本文件中,并将此文件以m为其扩展名,即M文件。
       M文件是一种可以在 MATLAB环境下运行的文本文件,它可以分为命令式文件和函数式文件两种。在此处主要用到的是命令式M文件,用它的简单形式来创建大型矩阵。在MATLAB命令行窗口中输入M文件名,所要输入的大型矩阵即可被输入到内存中。
       M文件中的变量名与文件名不能相同,否则会造成变量名和函数名的混乱。运行M文件时,需要先将M文件sample.m复制到当前目录文件夹下,否则运行时无法调用。

2.利用文本创建
        MATLAB中的矩阵还可以由文本文件创建,即在文件夹(通常为work文件夹)中建立txt 文件,在命令行窗口中直接调用此文件名即可。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc2hybHhscWw=,size_20,color_FFFFFF,t_70,g_se,x_16
         用户可以直接用函数来生成某些特定的矩阵,常用的函数如下:

  • eye(n):创建n×n单位矩阵。
  • eye(m,n):创建m×n的单位矩阵。
  • eye(size(A)):创建与A维数相同的单位矩阵。
  • ones(n):创建n×n全1矩阵。
  • ones(m,n):创建m×n全1矩阵。
  • ones(size(A)):创建与A维数相同的全1阵。
  • zeros(m,n):创建m×n全0矩阵。
  • zeros(size(A)):创建与A维数相同的全0阵。
  • rand(n):在[0,1]区间内创建一个n×n均匀分布的随机矩阵。
  • rand(m,n):在[0,1]区间内创建一个m×n均匀分布的随机矩阵。
  • rand(size(A)):在[0,1]区间内创建一个与A维数相同的均匀分布的随机矩阵。
  • compan(P):创建系数向量是P的多项式的伴随矩阵。
  • diag(v):创建一向量v中的元素为对角的对角阵。
  • hilb(n):创建n×n的Hilbert矩阵。
  • magic(n):生成n阶魔方矩阵。
  • sparse(A):将矩阵A转化为稀疏矩阵形式,即由A的非零元素和下标构成稀疏矩阵S。若A本身为稀疏矩阵,则返回A本身。

 MATLAB矩阵运算

1.矩阵元素的修改

 矩阵建立起来之后,还需要对其元素进行修改。下表列出了常用的矩阵元素修改命令:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc2hybHhscWw=,size_20,color_FFFFFF,t_70,g_se,x_16
2.矩阵的变维

矩阵的变维可以用符号“:”法和reshape函数法。reshape函数的调用形式如下:

reshape(X,m,n)

将已知的矩阵变为m行n列的矩阵。

3.矩阵的变向

Rot(90):将A逆时针旋转90度

Rot(90,k):将A逆时针旋转90度*k,k可为正整数或负整数

Fliplr(X):将X左右翻转

flipud(X):将X上下翻转

flipdim(X,dim)q:dim=1时对行翻转,dim=2对列翻转

4.矩阵的抽取

对矩阵元素的抽取主要是指对角元素和上(下)三角阵的抽取。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc2hybHhscWw=,size_20,color_FFFFFF,t_70,g_se,x_16

5.矩阵的加法运算

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc2hybHhscWw=,size_20,color_FFFFFF,t_70,g_se,x_16

6.矩阵的乘法运算 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc2hybHhscWw=,size_20,color_FFFFFF,t_70,g_se,x_16

 7.矩阵的点乘运算

 点乘运算指将两矩阵中相同位置的元素进行相乘运算,将积保存在原位置组成新矩阵。

8.矩阵的左除运算

线性方程组D*X=B,如果D非奇异,即它的逆矩阵inv(D)存在,则其解用MATLAB表示为:

X=inv(D)*B=D\B

符号“\”称为左除,即分母放在左边。

左除的条件:B的行数等于D的阶数(D的行数和列数相同,简称阶数)。

9.矩阵的右除运算

线性方程组D*X=B,如果D非奇异,即它的逆矩阵inv(D)存在,则其解用MATLAB表示为:

X=B*inv(D)=B/D

符号“/”称为右除,即分母放在右边。

右除的条件:B的列数等于D的阶数(D的行数和列数相同,简称阶数)。

10.矩阵的幂运算

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc2hybHhscWw=,size_20,color_FFFFFF,t_70,g_se,x_16

11.矩阵的逆

MATLAB矩阵运算

 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc2hybHhscWw=,size_20,color_FFFFFF,t_70,g_se,x_16    

12.范数

MATLAB矩阵运算

MATLAB矩阵运算

13.奇异值分解

奇异值分解(SVD)是现代数值分析(尤其是数值计算)的最基本和最重要的工具之一,因此在实际工程中有着广泛的应用。

所谓的SVD分解指的是将mxn矩阵A表示为3个矩阵乘积形式: USV^T,其中U为mxm酉矩阵,V为n×n酉矩阵,S为对角矩阵,其对角线元素为矩阵A奇异值且满足S1>=S2>=..>=Sr>Sr+1=..=Sn,r为矩阵A的秩。在 MATLAB中,这种分解是通过SVD命令来实现的。

SVD的命令调用格式:
MATLAB矩阵运算
 

 

 

                                                                                                                                                              

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/153005.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 无线电A类考试题_业余无线电考试a类题库app

    无线电A类考试题_业余无线电考试a类题库app[I]LK0001[Q]我国现行法律体系中专门针对无线电管理的最高法律文件及其立法机关是:[A]中华人民共和国无线电管理条例,国务院和中央军委[B]中华人民共和国无线电管理办法,工业和信息化部[C]中华人民共和国电信条例,国务院[D]中华人民共和国业余无线电台管理办法,工业和信息化部[P][I]LK0002[Q]我国现行法律体系中专门针对业余无线电台管理的最高法律文件及其立法机关是:[A]业余无线电台管理办法,工业和信息化部[B]个人业余无线电台管理暂行办法,国家体委和国家无委[C]业

  • P1396 营救_p1336燃烧失火

    P1396 营救_p1336燃烧失火P1396营救218通过571提交题目提供者yeszy标签二分图论并查集福建省历届夏令营难度普及-题目描述“咚咚咚……”“查水表!”原来是查水表来了,现在哪里找这么热心上门的查表员啊!小明感动的热泪盈眶,开起了门……妈妈下班回家,街坊邻居说小明被一群陌生人强行押上了警车!妈妈丰富的…

  • mysql databus_DataBus概述

    mysql databus_DataBus概述1.概述Databus是一个低延迟、可靠的、支持事务的、保持一致性的数据变更抓取系统。由LinkedIn于2013年开源。Databus通过挖掘数据库日志的方式,将数据库变更实时、可靠的从数据库拉取出来,业务可以通过定制化client实时获取变更并进行其他业务逻辑。Databus有以下特点:数据源和消费者之间的隔离。数据传输能保证顺序性和至少一次交付的高可用性。从变化流的任意时间点进行消费,包括…

    2022年10月17日
  • oracle的dba权限_用户组权限

    oracle的dba权限_用户组权限举例,我的用户名为terence1.赋予DBA权限grantdbatoterence;2.解除DBA权限是:revokedbafromterence;

  • APP推送系统工作原理

    APP推送系统工作原理一、传统APP架构下的信息传送APP主动向服务器请求数据,服务器被动的提供数据。步骤如下:然而,如果此时服务器又有了新的新闻,在用户没有主动刷新的情况下,服务器是不会主动推送给用户的。推送解决了这个困境,它让服务器主动连接APP,通知APP有了新的新闻,可以再请求。收到推送的APP(即使已关闭)又去服务器请求最新的新闻,用户就能看到了。二、实现推送的方法实现一个推送系统需要服务器端和…

  • php数据库常用函数

    php数据库常用函数

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号