大家好,又见面了,我是你们的朋友全栈君。
MATLAB以矩阵作为数据操作的基本单位,这使得矩阵运算变得非常简捷、方便、高效。矩阵是由m×n个数av (i=1,2,…,m; j = 1,2,…,n)排成的m行n列数表,记成:
若m=n,则该矩阵为n阶矩阵(n阶方阵)。
在键盘上直接按行方式输入矩阵是最方便、最常用的创建数值矩阵的方法,尤其适合较小的简单矩阵。在用此方法创建矩阵时,应当注意以下几点:
矩阵的生成除了直接输入法,还可以利用M文件生成法和文本文件生成法等。
1.利用M文件创建
当矩阵的规模比较大时,直接输入法就显得笨拙,出差错也不易修改。为了解决这些问题,可以将所要输入的矩阵按格式先写入一文本文件中,并将此文件以m为其扩展名,即M文件。 M文件是一种可以在 MATLAB环境下运行的文本文件,它可以分为命令式文件和函数式文件两种。在此处主要用到的是命令式M文件,用它的简单形式来创建大型矩阵。在MATLAB命令行窗口中输入M文件名,所要输入的大型矩阵即可被输入到内存中。 M文件中的变量名与文件名不能相同,否则会造成变量名和函数名的混乱。运行M文件时,需要先将M文件sample.m复制到当前目录文件夹下,否则运行时无法调用。
2.利用文本创建 MATLAB中的矩阵还可以由文本文件创建,即在文件夹(通常为work文件夹)中建立txt 文件,在命令行窗口中直接调用此文件名即可。
用户可以直接用函数来生成某些特定的矩阵,常用的函数如下:
矩阵建立起来之后,还需要对其元素进行修改。下表列出了常用的矩阵元素修改命令:
2.矩阵的变维
矩阵的变维可以用符号“:”法和reshape函数法。reshape函数的调用形式如下:
reshape(X,m,n)
将已知的矩阵变为m行n列的矩阵。
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对列翻转
对矩阵元素的抽取主要是指对角元素和上(下)三角阵的抽取。
点乘运算指将两矩阵中相同位置的元素进行相乘运算,将积保存在原位置组成新矩阵。
线性方程组D*X=B,如果D非奇异,即它的逆矩阵inv(D)存在,则其解用MATLAB表示为: X=inv(D)*B=D\B 符号“\”称为左除,即分母放在左边。 左除的条件:B的行数等于D的阶数(D的行数和列数相同,简称阶数)。
线性方程组D*X=B,如果D非奇异,即它的逆矩阵inv(D)存在,则其解用MATLAB表示为: X=B*inv(D)=B/D 符号“/”称为右除,即分母放在右边。 右除的条件:B的列数等于D的阶数(D的行数和列数相同,简称阶数)。
奇异值分解(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的命令调用格式:
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/153005.html原文链接:https://javaforall.cn
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有