MATLAB常用操作

时间:2022-06-21 07:05:38

1.点乘,点除,点乘方

点乘(对应元素相乘),必须同维或者其中一个是标量,a.*b

点除,a.\b表示矩阵b的每个元素除以a中对应元素或者除以常数a,a./b表示常数a除以矩阵b中每个元素或者矩阵a除以矩阵b对应元素或者常数b

点乘方a.^b,矩阵a中每个元素按b中对应元素乘方或者b是常数

2.矩阵中元素的操作

矩阵a中第r行,a(r,:),

第r列,a(:,r),

依次提取每一列组成一个列向量a(:),

提取子矩阵第i到j行和第k到t列a(i:j,k:t)

可以通过下标引用,但是元素下标从1开始, 也可通过序号引用,但是按列存储,也就是说对于3*3的矩阵a,a(4)是a(1,2)不是a(2,1)

3.求极限

syms x;

f表达式

limit(f,0)//表示x趋于0时的极限

4.因式分解

syms x

factor(表达式)

5.求积分

syms x

y = x^2 + 2

int(y,3,4)//在区间3到4求积分

或者

quad('sin(x)',4,6) %必加引号

5 . 求n阶导数

diff(函数表达式,阶数n)//注意并不是在x = n时的一阶导数值

6.解一元方程

syms x

y = X^3 - 1//y必须是个式子,也就是说x必须是符号变量不可是具体的数,否则一直空解

solve(y)

或者

求方程 3x4+7x3 +9x2-23=0的全部根。

p=[3,7,9,0,-23];        %建立多项式系数向量

x=roots(p)               %求根

7.whos用于显示驻留在工作区内的变量的详细信息,采用clear 变量名把该变量清理出内存

8.linspace(a,b,n) 其中a和b是生成向量的第一个和最后一个元素,n是元素总数。 显然,linspace(a,b,n)与a:(b-a)/(n-1):b等价。

9.size(矩阵名),输出行数和列数,比如产生和矩阵a同维的全一阵,ones(size(a))

10.常用的产生通用特殊矩阵的函数有: zeros:产生全0矩阵(零矩阵)。 ones:产生全1矩阵(幺矩阵)。 eye:产生单位矩阵。 rand:产生0~1间均匀分布的随机矩阵。 randn:产生均值为0,方差为1的标准正态分布随机矩阵。

  一.常用特殊阵

建立随机矩阵:

(1) 在区间[20,50]内均匀分布的5阶随机矩阵。

(2) 均值为0.6、方差为0.1的5阶正态分布随机矩阵。

命令如下: x=20+(50-20)*rand(5)

y=0.6+sqrt(0.1)*randn(5)

此外,常用的函数还有reshape(A,m,n),它在矩阵总元素个数保持不变的前提下,将矩阵A重新排成m×n的二维矩阵。

例如,行向量:
a = [1 2 3 4 5 6]

执行下面语句把它变成3行2列:
b = reshape(a,3,2)

执行结果:
b =
1 4
2 5
3 6

在使用reshape时一定要注意的是变换前后矩阵的总元素个数和值不变。

   二.用于专门学科的特殊矩阵

(1) 魔方矩阵

魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。

对于n阶魔方阵,其元素由1,2,3,…,n2共n2个整数组成。MATLAB提供了求魔方矩阵的函数magic(n),其功能是生成一个n阶魔方阵。

将101~125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565。

M=100+magic(5)

可知:n阶普通魔方阵的常数值是n(n^2+1)/2(1加到n^2再除以n)。

(2) 范得蒙矩阵

范得蒙(Vandermonde)矩阵最后一列全为1,倒数第二列为一个指定的向量,其他各列(即从第三列开始)是其后列与倒数第二列的点乘积即倒数第二列的次方。

可以用一个指定向量生成一个范得蒙矩阵。在MATLAB中,函数vander(V)生成以向量V为基础向量的范得蒙矩阵。

例如,A=vander([1;2;3;5])即可得到上述范得蒙矩阵。

(3) 希尔伯特矩阵

Hilbert matrix,矩阵的一种,其元素为1/(i+j-1),ij分别为其行标和列标。

  即:

  [1,1/2,1/3,……,1/n]

  |1/2,1/3,1/4,……,1/(n+1)|

  |1/3,1/4,1/5,……,1/(n+2)|

  ……

  [1/n,1/(n+1),1/(n+2),……,1/(2n-1)]

  希尔伯特矩阵是一种数学变换矩阵,正定,且高度病态(即,任何一个元素发生一点变动,整个矩阵的值和逆矩阵都会发生巨大变化),病态程度和阶数相关。

在MATLAB中,生成希尔伯特矩阵的函数是hilb(n)。 使用一般方法求逆会因为原始数据的微小扰动而产生不可靠的计算结果。MATLAB中,有一个专门求希尔伯特矩阵的逆的函数invhilb(n),其功能是求n阶的希尔伯特矩阵的逆矩阵。

因为希尔伯特矩阵已经规定好了,因此hilb和invhilb只有一个参数即阶数。

format rat     %以有理形式输出,即循环小数表示成分数

(4) 托普利兹矩阵

托普利兹(Toeplitz)矩阵除第一行第一列外,其他每个元素都与左上角的元素相同。即主对角线上的元素相等,平行于主对角线的线上的元素也相等。生成托普利兹矩阵的函数是toeplitz(x,y),它生成一个以x为第一列,y为第一行的托普利兹矩阵。这里x, y均为向量,两者不必等长。toeplitz(x)用向量x生成一个对称的托普利兹矩阵。例如   T=toeplitz(1:6).

(5) 伴随矩阵

MATLAB生成伴随矩阵的函数是compan(p),其中p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。

例如,为了求多项式的x3-7x+6的伴随矩阵,可使用命令: p=[1,0,-7,6];

compan(p)

看了好多的书,都把compan()函数翻译成求伴随矩阵或友矩阵,可是你用它的时候你会

发现,compan()函数的输入只能是一个向量(vector),而不能是一个矩阵(matrix),

所以我觉得它不能称为真正的求伴随矩阵的函数。不过,我们可以利用高等数学上的伴随

矩阵和逆矩阵的关系来求逆矩阵,像这样:

MATLAB常用操作
1 function J=companymatrix(A)
2 if det(A)~=0%det是求行列式的值
3 J=inv(A)*det(A);
4 else
5 fprintf('|A|=0\n');
6 J=pinv(A)*det(A);
7 end
MATLAB常用操作

(6) 帕斯卡矩阵

我们知道,二次项(x+y)n展开后的系数随n的增大组成一个三角形表,称为杨辉三角形。

由杨辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵。

函数pascal(n)生成一个n阶帕斯卡矩阵。

求(x+y)5的展开式。

在MATLAB命令窗口,输入命令: pascal(6)

矩阵次对角线上的元素1,5,10,10,5,1即为展开式的系数。

11.矩阵分析

   11.1 对角阵 只有对角线上有非0元素的矩阵称为对角矩阵,对角线上的元素相等的对角矩阵称为数量矩阵,对角线上的元素都为1的对角矩阵称为单位矩阵。

diag(a),提取矩阵a的对角线元素组成列向量。

先建立5×5矩阵A,然后将A的第一行元素乘以1,第二行乘以2,…,第五行乘以5。

A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;... 11,18,25,2,19];

D=diag(1:5);

D*A  %用D左乘A,对A的每行乘以一个指定常数

   11.2三角阵

triu及tril

  11.3矩阵转置

a'共轭转置,a.'为普通矩阵转置(并不是顺时针旋转90),rot90(a)表示逆时针旋转90

   11.4矩阵的翻转

对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,…,依次类推。

MATLAB对矩阵A实施左右翻转的函数是fliplr(A)。

矩阵的上下翻转 MATLAB对矩阵A实施上下翻转的函数是flipud(A)。

  11.5方阵的行列式

把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为矩阵所对应的行列式的值。在MATLAB中,求方阵A所对应的行列式的值的函数是det(A)。

   11.6矩阵的秩与迹

1.矩阵的秩 矩阵线性无关的行数与列数称为矩阵的秩。在MATLAB中,求矩阵秩的函数是rank(A)。

2.矩阵的迹 矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。在MATLAB中,求矩阵的迹的函数是trace(A)。

   11.7向量和矩阵的范数

向量的3种常用范数及其计算函数

在MATLAB中,求向量范数的函数为:

(1) norm(V)或norm(V,2):计算向量V的2—范数。

(2) norm(V,1):计算向量V的1—范数。

(3) norm(V,inf):计算向量V的∞—范数。

在MATLAB中,计算矩阵A的3种条件数的函数是:

(1) cond(A,1)   计算A的1—范数下的条件数。

(2) cond(A)或cond(A,2)   计算A的2—范数数下的条件数。

(3) cond(A,inf)   计算A的 ∞—范数下的条件数。

   11.8矩阵的特征值与特征向量

在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),常用的调用格式有3种:

(1) E=eig(A):求矩阵A的全部特征值,构成向量E。

(2) [V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。

(3) [V,D]=eig(A,‘nobalance’):与第2种格式类似,但第2种格式中先对A作相似变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量。

  11.9

关系运算

MATLAB提供了6种关系运算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于)。

它们的含义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。

a = b表示把b赋值给同维的矩阵a

关系运算符的运算法则为:

(1) 当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。

(2) 当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。

最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。

当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。

最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。

产生5阶随机方阵A,其元素为[10,90]区间的随机整数,然后判断A的元素是否能被3整除。

(1) 生成5阶随机方阵A。 A=fix((90-10+1)*rand(5)+10)

(2) 判断A的元素是否可以被3整除。

P=rem(A,3)==0 其中,rem(A,3)是矩阵A的每个元素除以3的余数矩阵。

此时,0被扩展为与A同维数的零矩阵,P是进行等于(==)比较的结果矩阵。

建立矩阵A,然后找出大于4的元素的位置。

(1) 建立矩阵A。 A=[4,-65,-54,0,6;56,0,67,-45,0]

(2) 找出大于4的元素的位置。 find(A>4)

12.

  solve是符号解(解析解),roots是数值解 用求特征值的方法解方程。

3x5-7x4+5x2+2x-18=0 p=[3,-7,0,5,2,-18];

A=compan(p);           %A的伴随矩阵

x1=eig(A)              %求A的特征值

x2=roots(p)                 %直接求多项式p的零点

矩阵的超越函数

1.矩阵平方根sqrtm sqrtm(A)计算矩阵A的平方根。

2.矩阵对数logm logm(A)计算矩阵A的自然对数。

此函数输入参数的条件与输出结果间的关系和函数sqrtm(A)完全一样

矩阵指数expm、expm1、expm2、expm3 expm(A)、expm1(A)、expm2(A)、expm3(A)的功能都求矩阵指数eA。

4.普通矩阵函数funm funm(A,‘fun’)用来计算直接作用于矩阵A的由‘fun’指定的超越函数值。当fun取sqrt时,funm(A,‘sqrt’)可以计算矩阵A的平方根,与sqrtm(A)的计算结果一样。

13.自然对数相关

exp,即自然对数表示为exp(x)。
log(X) %自然对数
log2(X) %以2为底
log10(X) %以10为底 14.多项式乘除法
1  p1=conv([1,0,2],conv([1,4],[1,1]));  %conv表示多项式相乘
2 p2=[1 0 1 1];
3 [q,r]=deconv(p1,p2);
4 cq='商多项式为 '; cr='余多项式为 '; %disp为屏幕输出函数
5 disp([cq,poly2str(q,'s')]),disp([cr,poly2str(r,'s')]) % poly2str表示生成多项式

商多项式为     s + 5
余多项式为     5 s^2 + 4 s + 3

15.

polyval(p,x)计算在X中任意元素处的多项式p的估值。

poly(A)求矩阵的特征多项式。

[d,v] = eig(A)其中d是矩阵的特征向量,V是特征值。

MATLAB常用操作的更多相关文章

  1. matlab常用目录操作

    总结matlab下常用到的目录操作 添加当前文件夹及其子文件夹至搜索路径 % add path rootDir = fileparts(mfilename('fullpath')); addpath( ...

  2. 使用matlab进行图像处理的一些常用操作和tip

    本人还是习惯使用Python语言,有时候不得不使用matlab的时候就变得举步维艰,下面记录一下使用matlab进行图像处理的一些常用操作以及代码,方便之后查阅: 1. 图像的读取 %% 读取原图像 ...

  3. Matlab常用小技巧及部分快捷键

    Matlab常用小技巧一: 1. m文件如果是函数,保存的文件名最好与函数名一致,这点都很清楚.不过容易疏忽的是,m文件名的命名尽量不要是简单的英文单词,最好是由大小写英文/数字/下划线等组成.原因是 ...

  4. Matlab常用函数集锦

    ndims(A)返回A的维数size(A)返回A各个维的最大元素个数length(A)返回max(size(A))[m,n]=size(A)如果A是二维数组,返回行数和列数nnz(A)返回A中非0元素 ...

  5. MATLAB矩阵操作大全

    转载自:http://blog.csdn.net/dengjianqiang2011/article/details/8753807 MATLAB矩阵操作大全 一.矩阵的表示 在MATLAB中创建矩阵 ...

  6. matlab常用的一些程序和功能

    ~ 去除误匹配算法(matlab) 1.ransac算法 [tform,matchedPoints1,matchedPoints2] = ...    estimateGeometricTransfo ...

  7. MATLAB常用函数, 常见问题

    MATLAB常用函数 1.常用取整函数 round(x):四舍五入函数 floor(x) : 向下取整, 即 floor(1.2)=1,  floor(1.8) = 1 ceil(x) : 向上取整, ...

  8. 【三】用Markdown写blog的常用操作

    本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...

  9. php模拟数据库常用操作效果

    test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...

随机推荐

  1. JSWindow对象

    Window 对象 Window 对象表示浏览器中打开的窗口. 如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外 ...

  2. php 异步处理的gearman

    1. php 是进程处理,单线程到的,没有异步机制,在一些处理花费时间较多的情况导致用户体验较差.可以使用gearman 进行异步处理. 2. gearman 是一个异步处理的socket架构. 需要 ...

  3. 深度学习工具caffe具体安装指南

    caffe安装指南-吐血整理 前言: 在一台系统环境较好的linux机器上能够非常easy的安装caffe,可是假设系统本身非常旧,又没有GPU的话.安装就太麻烦了,全部都得从头做起,本文档旨在尽可能 ...

  4. SQL Server 2016新特性: 对JSON的支持

     SQL Server 2005开始支持XML数据类型,提供原生的XML数据类型.XML索引及各种管理或输出XML格式的函数.随着JSON的流行,SQL Server2016开始支持JSON数据类 ...

  5. java 读写 excle 完整版

    pom.xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</a ...

  6. SQL语句常见视图操作部分试题(一)

    创建一个名称为EMPLOYEES_VU的视图,它基于EMPLOYEES表中的雇员号.雇员名和部门号.将雇员名的列标题改为EMPLOYEE. CREATE VIEW EMPLOYEES_VU AS SE ...

  7. 2018&period;09&period;27 hdu4507吉哥系列故事——恨7不成妻(数位dp)

    传送门 一道比较综合的数位dp. 维护三个值:[L,R][L,R][L,R] 区间中与7无关的数的数量,与7无关的数之和,与7无关的数的的平方和. 然后可以用第一个值推第二个,第一个和第二个值推第三个 ...

  8. WordPress引入css&sol;js两种方法

    WordPress引入css/js 是我们制作主题时首先面对的一个难点,任何一款主题都要加载自己的css,js,甚至很有可能还需要加载Jquery文件,网上方法特多,说法不一,我们今天借鉴wordpr ...

  9. unity动态加载(翻译) &period;

    AssetBundles are files which you can export from Unity to contain assets of your choice. These files ...

  10. 【BZOJ2007】&lbrack;Noi2010&rsqb;海拔 对偶图最短路

    [BZOJ2007][Noi2010]海拔 Description YT市是一个规划良好的城市,城市被东西向和南北向的主干道划分为n×n个区域.简单起见,可以将YT市看作 一个正方形,每一个区域也可看 ...