专题一:

MATLAB操作环境:

当前文件夹的设置:1,试图设置,2,命令格式设置(>>cd e:\work)

MARLAB的搜索路径:

先判断此命令是不是个变量,然后判断是不是内部函数,再判断是不是程序文件(程序文件的搜索顺序是>>当前文件夹下的程序文件--> >>文件搜索路径文件夹中的程序文件)

如何设置文件搜索路径:

1,用path命令设置文件搜索路径  >>path(path,’e:\work’)

2,用对话框设置文件搜索路径,在主页的工具框下有一个设置路径的选择。

MATLAB数值数据:

实数,浮点型,复型

>>class()函数求变量的类型

针对于复型:>>real函数:求复数的实部   imag函数:求复数的虚部

数值数据的输出格式:format的命令格式: format 格式符

format只影响输出格式不影响存储和计算

常用函数的应用:

sin是以弧度为单位的函数

sind 是以角度为单位的函数

abs函数可以求实数的绝对值,复数的模,字符串的ASCII码值

用于取整的函数有:fix,floor,ceil,round

round函数按照四舍五入的规则取整

ceil函数是向上取整,取大于等于这个数的第一个整数

floor 函数是向下取整

fix函数是固定取靠近0的那个整数,即舍去小数取整数

求余数的函数rem函数或者是mod函数

Isprime(n)判断是否为素数

>>x=1:100;

>>k=isprime(x); --k的值为0或1,是素数返回1,不是素数返回0

>>p=find(k); --查找是1的位置,即1所对应的下标

>> k1=x(p); --输出所有的素数

内存变量文件:

Save: 创建内存变量文件

Load: 装入内存变量文件

矩阵的表示:

矩阵的建立:直接输入法:将矩阵的元素用中括号括起来,按矩阵的顺序输入各元素,同一行的各元素用逗号或空格分割,不同行的元素之间用分号分割。

利用已建好的矩阵建立更大的矩阵:一个大矩阵可以由已经建好的小矩阵拼接而成。

冒号表达式:

格式:e1:e2:e3   e1初始值,e2步长,e3终止值

linspace函数: linspace(a,b,n)  a是向量的第一个元素,b是向量的最后一个元素,n是生成元素的个数,默认为100个。

结构矩阵:格式:结构矩阵元素.成员名=表达式

单元矩阵: 单元矩阵的元素用大括号括起来

>>b={10,’liu’,[11,21;34,78];12,’wang’,[34,191;27,578]}

矩阵元素的引用:通过下标来引用: A(4,5)代表第四行第五列

通过序号来引用:在MATLAB中,矩阵的元素是按照列存储的。矩阵元素的序号就是矩阵元素在内存中的排列顺序。A(3)代表第三个元素。

矩阵的序号与下标可以利用sub2ind和 ind2sub函数实现相互转换

Sub2ind函数:将矩阵中指定的行,列下标转换成存储的序号。 调用格式:D=sub2ind(s,i,j) s表示要转换的矩阵的行数和列数,是由行数和列数组成的向量,通常用size函数获取。i是要转换矩阵元素的行下标;j是转换矩阵元素的列下表。

例: >> A=[1:2;4:6];

>>D=sub2ind(size(A),[1,2;2,2],[1,1;3,2])

D= 1  2

6  4

(1,1)位置上的元素在矩阵中的序号是1

(2,1)位置上的元素在矩阵中的序号是2

(2,3)位置上的元素在矩阵中的序号是6

(2,2)位置上的元素在矩阵中的序号是4

Ind2sub函数:把矩阵元素的序号换成对应的下标,调用格式:[i,j]=ind2sub(S,D)

s表示要转换的矩阵的行数和列数,是由行数和列数组成的有两个元素的向量,D是序号;函数返回值是序号所对应元素的行下标和列下表。

例:   >>[i,j]=ind2sub([3,3],[1,3,5]) ---[3,3]代表是一个3行3列的矩阵

I=1 3 2                 ---[1 3 5]代表要求矩阵中第1个,第3个,第5个元素的下标

J=1 1 2

可以看出结果是:(1,1),(3,1),(2,2);

利用冒号表达式获得子矩阵:

单个冒号来作为行下标或列下标就代表全部行或全部列

A(i,:)  表示第i行的全部元素

A(:,J)  表示第j列的全部元素

A(i:i+m,k:k+m)  表示第i~i+m行内且k~k+m列中的所有元素

A(i:i+m,:) 表示第i~i+m行的全部元素

end运算符:表示某一维的末尾元素下标

>>A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20]

>>A(end,:) --引用矩阵A的最后一行元素

Ans=16 17 18 19 20

>>A([1 4],3:end)--表示用第一行第四行从第3列到最后一列的元素

Ans=  3   4   5

18  19  20

如何删除矩阵的元素:利用空矩阵删除矩阵的元素 (X代表一个空矩阵 X=[])

改变矩阵的形状: reshape(A,m,n)函数:在矩阵元素保持不变的前提下,将矩阵A重新排列成m×n的二维矩阵。只改变原矩阵的行数和列数,但并不改变矩阵元素的个数及其存储顺序。

A(:):将矩阵A的每一列元素堆叠起来,成为一个列向量。等价于reshape(A,n,1) n代表矩阵元素的个数。

MATLAB基本运算:(算术,关系,逻辑运算)

算术运算:加减运算,同型矩阵才能相加减

一个标量也可以和矩阵进行加减运算,这时把标量和矩阵的每一个元素进行加减运算

除法运算:如果A矩阵时非奇异方阵,则B/A<-->B*inv(A)  A/B<-->inv(A)*B

对于矩阵左除和右除表示两种不同的除数矩阵和被除数数矩阵的关系,但是当含有标量时左除和右除一样的。例:a=[10.5,25] a/5=2.1000 5.0000    5/a=2.1000 5.0000

点运算:两矩阵进行点运算是指他们的对应元素进行相关运算,要求两矩阵同型。

例:>>A=[1 2 3;4 5 6;7 8 9];

>>B=[-1,0,1;1,-1,0;0,1,1];

>>C=A.*B= -1 0 3

  1. -5 0
  1. 8 9

>>D=A*B=  1 1 4

  1. 1 10

1 1 16

字符串处理

当字符串中的字符含有单引号时,则该单引号字符要用两个单引号来表示

  1. 将字符串倒过来重新排列

>> revch=ch(end:-1:1)--步长为-1

  1. 将字符串中的小写字母变成相应的大写字母,单其余字符不变

>>k=find(ch>=’a’&&ch<=’z’) ---k是小写字母的坐标

>>ch(k)=ch(k)-(‘a’-’A’)

  1. 统计字符串中小写字母的个数(k是2中的结果)

>>length(k)

字符串的执行:格式:evals(s)

例:>>t=pi; >>m=’[t,sin(t),cos(t)]’; y=evals(m)  y=3.1416  0.0000  -1.0000

字符串与数值之间的转换

abs和double函数都可以用来获取字符串矩阵对应的ASCll码数值矩阵

char 函数可以把ASCll码矩阵转换为字符串矩阵

字符串的比较

  1. 利用关系运算符进行比较
  2. 利用函数

strcmp(s1,s2) 用来比较字符串s1,s2是否相等,相等返回1,否则返回0

strncmp(s1,s2,n)用来比较两个字符串前n个字符是否相等,相等返回1,否则返回0

Strcmpi(s1,s2)在忽略字母大小写的前提下,比较字符串s1,s2是否相等,相等返回1,否则返回0

Strncmpi(s1,s2,n)在忽略字母大小写的前提下,用来比较两个字符串前n个字符是否相等,相等返回1,否则返回0

字符串的查找与替换

Findstr(s1,s2):返回短字符串在长字符串中的开始位置

Strrep(s1,s2,s3):将字符串s1中的所有子字符串s2替换为字符串s3

专题二:

特殊矩阵:

zeros函数:产生全0矩阵,即零矩阵。

ones函数:产生全1矩阵,即幺矩阵。

eye函数:产生对角线为1的矩阵。当矩阵是方阵时,得到一个单位矩阵。

rand函数:产生(0,1)区间均匀分布的随机矩阵。

randn函数:产生均值为0,方差为1的均值正态分布随机矩阵。

函数的调用格式都相同;这里以zeros函数为例。

zeros(m):产生m*m的零矩阵。

zeros(m,n):产生m*n的零矩阵。

zeros(size(A)):产生与矩阵A同样大小的零矩阵

产生5阶两位随机整数矩阵A:

fix(10+(99-10+1)*rand(5));

rand函数:产生(0,1)开区间均匀分布的随机数x

fix(a+(b-a+1)*x):产生[a,b]区间上均匀分布的随机整数。

产生均值为0.6,方差为0.1的5阶正态二分部随机矩阵

0.6+sqrt(0.1)*randn(5)

randn函数:产生均值为0,方差为1的标准正态分布随机数x

a+b*x:得到均值为a,方差为b*b的随机数。

魔方矩阵:

n阶魔方阵由1,2,3,…,n2共n 2个整数组成,且每行、每列以及 主、副对角线上各n个元素之和都相等。

n阶魔方阵每行每列元素的和为(1+2+3+…+ n2)/n=(n+n3)/2

n>2时有很多不同的n阶魔方阵,MATLAB函数magic(n)产生一个 特定的魔方阵。

范德蒙矩阵:

范得蒙矩阵的最后一列全为1,即向量v各元素的零次方,倒数第二列为指定的向量v, 即向量v各元素的一次方,其他各列是其后列与倒数第二列的点乘积。

函数vander(v)生成以V为基础的范德蒙矩阵。

例:>>A=vander(1:5) V=[1 2 3 4 5];

希尔伯特矩阵:

矩阵的一般形式为:

  1. 1/2   ... 1/n

H  =             1/2 1/3   ...   1/(n+1)

|  |    \       |

1/n    1/(n+1)...  1/(2*n-1)

希尔伯特矩阵的元素为H(i,j)=1/(i+j-1)。

伴随矩阵:

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

帕斯卡矩阵:

根据二项式定理,(x+y)的n次方展开后的系数随着n的增大组成一个三角形表,这个 三角形称为杨辉三角形。

把二项式系数依次填写在矩阵的左侧对角线上,然后提取左侧的n行n列元素 即为n阶帕斯卡(Pascal)矩阵。

帕斯卡矩阵的第一行元素和第一列元素都为1,其余位置的元素是该元素的左边 元素与上面元素相加,即P(i,j)=P(i,j-1)+P(i-1,j),且P(i,1)=1,P(1,j)=1

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

矩阵变换

对角矩阵:只有对角线上有非零元素的矩阵。

数量矩阵:对角线上的元素相等的对角矩阵。

单位矩阵:对角线上的元素都为1的对角矩阵。

对角阵:

提取矩阵的对角元素

diag(A):提取矩阵A主对角线元素,产生一个列向量。

diag(A,k):提取矩阵A第k条对角线的元素,产生一个列向量。

矩阵的对角线:与主对角线平行,往上为第1条、第2条、一直到第n条对角线,往下为第-1条、-2条、一直到-n条对角线,主对角线为第0条对角线。

构造对角阵:

diag(V):以向量V为主对角线元素,产生对角矩阵。

diag(V,k):以向量 V为第k条对角线元素,产生对角矩阵。

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

>>A=[7,0,1,0,5;3,5,7,4,1;4,0,3,0,2;1,1,9,2,3;1,8,5,2,9];

>> D=diag(1:5); 对角线为[1 2 3 4 5]的矩阵

>> D*A

三角阵:

上三角阵:矩阵的对角线以下的元素全为零的矩阵。

下三角阵:对角线以上的元素全为零的矩阵。

上三角矩阵

triu(A):提取矩阵A的主对角线及以上的元素。

triu(A,k):提取矩阵A的第k条对角线及以上的元素。

下三角矩阵

在MATLAB中,提取矩阵A的下三角矩阵的函数是tril,其用法与triu函数完全相同。

矩阵的转置:

转置运算符是小数点后面接单引号(.')。

共轭转置,其运算符是单引号('),它在转置的基础上还要取每个数的复共轭。

如果矩阵的元素是实数,那么转置和 共轭转置的结果是一样的。

例:

>> A=[1,3;3+4i,1-2i]

A = 1.0000 + 0.0000i   3.0000 + 0.0000i

3.0000 + 4.0000i   1.0000 - 2.0000i

>> A.'

ans = 1.0000 + 0.0000i  3.0000 + 4.0000i

3.0000 + 0.0000i  1.0000 - 2.0000i

>> A'

ans = 1.0000 + 0.0000i  3.0000 - 4.0000i

3.0000 + 0.0000i  1.0000 + 2.0000i

矩阵的旋转

rot90(A,k):将矩阵A逆时针方向旋转90º的k倍,当k为1时可省略。

矩阵的翻转

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

fliplr(A):对矩阵A实施左右翻转

flipud(A):对矩阵A实施上下翻转。

矩阵的求逆

对于一个方阵A,如果存在一个与其同阶的方阵B,使得AB=BA=I (I为单位 矩阵),则称B为A的逆矩阵,当然,A也是B的逆矩阵。 p

inv(A):求方阵A的逆矩阵。

矩阵求值

det(A):求方阵A所对应的行列式的值。

rank(A):求矩阵A的秩。(矩阵线性无关的行数或列数称为矩阵的秩)

矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。

trace(A):求矩阵A的迹。

向量和矩阵的范数

矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度。

向量的3种常用范数

向量1—范数:向量元素的绝对值之和。

向量2—范数:向量元素绝对值的平方和的平方根

向量∞—范数:所有向量元素绝对值中的最大值。

求向量范数的函数为

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

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

norm(V,inf):计算向量V的无穷范数。

矩阵的范数:

矩阵A的1—范数:所有矩阵列元素绝对值之和的最大值。

矩阵A的2—范数:A'A矩阵的最大特征值的平方根。

矩阵A的∞—范数:所有矩阵行元素绝对值之和的最大值。

MATLAB提供了求3种矩阵范数的函数,其函数调用格式与求向 量的范数的函数完全相同。

矩阵的条件:

矩阵A的条件数等于A的范数与A的逆矩阵的范数的乘积。

条件数越接近于1,矩阵的性能越好,反之,矩阵的性能越差。

计算矩阵A的3种条件数的函数是:

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

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

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

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

特征值的定义:设A是N阶方阵,如果存在常数x和n维非零列向量B,使得等式A*B=x*B成立,则称x为A的特征值,B是对应特征值x的特征向量。

在MATLAB中,计算矩阵的特征值和特征向量的函数是eig,常用的调用格式

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

[X,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并产生矩阵X,X

各列是相应的特征向量

例:>>A=[1 1 0;1 0 5;1 10 2];

[x,d]=eig(A)

X= 0.0722  0.9751  0.0886

0.5234 -0.0750 -0.6356

0.8490 -0.2089  0.7669

D= 8.2493   0       0

0       0.9231   0

0        0       -6.1723

D(1,1)位置上的特征值对应的特征向量为X矩阵的第一列

D(2,2)位置上的特征值对应的特征向量为X矩阵的第二列....

矩阵*特征值==特征值*特征向量<-->A*X(:,1)=D(1)*X(:,1)

即矩阵乘以特征向量的第一列==第一个特征值*第一列的特征向量

eigshow函数:可以演示单位圆上的向量x和Ax之间的关系。

稀疏矩阵:

完全存储和稀疏存储方式。完全存储就是所有的元素都存在一个n*n的二维表中,稀疏存储方式是把非零元素的坐标和非零值存储起来。

A=spares(S):将矩阵S转化为稀疏存储方式的矩阵A;

S=full(A):将矩阵A转化为完全存储方式的矩阵S

如何直接建立稀疏存储矩阵:

spares函数的其他调用格式:

spares(m,n):生成m*n的所有元素都是0的稀疏矩阵。

spares(u,v,S):其中u,v,S是3个等长的向量。S是要建立的系数矩阵的非零元素,u(i),v(i)分别是S(i)的行和列的下标。

例:A=spares([1 2 2],[2 1 4],[4 5 -7])

A=  (1,2)  4

(2 1)  5

(2,4)  -7

使用spconvert函数直接建立稀疏矩阵,其调用格式为B=spconvert(A)

其中,A为一个m×3或m×4的矩阵,其每行表示一个非零元素,m是非零元素的个数。

l A(i,1)表示第i个非零元素所在的行。

l A(i,2)表示第i个非零元素所在的列。

l A(i,3)表示第i个非零元素值的实部。

l A(i,4)表示第i个非零元素值的虚部。

若矩阵的全部元素都是实数,则无须第4列。

例:>> A=[2,2,1;2,1,-1;2,4,3]

A =

2 2 1

2 1 -1

2 4 3

>> B=spconvert(A)

B =

(2,1) -1

(2,2) 1

(2,4) 3

带状稀疏矩阵的稀疏存储 :

p 稀疏矩阵有两种基本类型:无规则结构的稀疏矩阵与有规则结构的稀

疏矩阵。

p 带状稀疏矩阵就是一种十分典型的具有规则结构的稀疏矩阵,它是指

所有非零元素集中在对角线上的矩阵。

[B,d]=spdiags(A):从带状稀疏矩阵A中提取全部非零对角线元素赋给矩阵B

及其这些非零对角线的位置向量d。

A=spdiags(B,d,m,n):产生带状稀疏矩阵的稀疏存储矩阵A,其中m、n为原

带状稀疏矩阵的行数与列数,矩阵B的第i列即为原带状稀疏矩阵的第i条非

零对角线,向量d为原带状稀疏矩阵所有非零对角线的位置

>> A =[11,0,0,12,0,0;0,21,0,0,22,0;0,0,31,0,0,32;41,0,0,42,0,0;0,51,0,0,52,0]

其中d代表的是第几条对角线。

用spdiags函数产生带状稀疏矩阵的稀疏存储A

A=spdiags(B,d,m,n)

其中,m、n为原带状矩阵的行数与列数。B为r×p矩阵,这里r=min(m,n),p为

原带状矩阵所有非零对角线的条数,矩阵B的第i列即为原带状矩阵的第i条非零

对角线。取值方法是:若非零对角线上元素个数等于r,则取全部元素;若非零

对角线上元素个数小于r,则应该用零补足到r个元素。补零的原则是:若m<n

(行数<列数),则d<0时(主对角线以下)在前面补0,d>0时(主对角线以上)

在后面补0;当m≥n(行数≥列数),则d<0时在后面补0;d>0时在前面补0。

利用带状稀疏矩阵非零对角线元素组成的矩阵B,以及对角线位置组成的

向量d,命令执行后产生一个稀疏存储矩阵A。

>> A=spdiags(B,d,5,6)

A =

(1,1)   11

(4,1)   41

(2,2)   21

(5,2)   51

(3,3)   31

(1,4)   12

(4,4)   42

(2,5)   22

(5,5)   52

(3,6)   32

MATLAB 字符串与矩阵的学习相关推荐

  1. MATLAB字符串学习笔记

    MATLAB字符串 在使用MATLAB时经常会遇到对字符或字符串的操作.本章将对MATL AB的字符串函数进行详细的介绍.字符串是指1X n的字符数组. 在MATLAB软件中提供了很多的字符或字符串操 ...

  2. matlab字符串判断每个字符,空矩阵赋值

    ** matlab字符串判断每个字符,空矩阵赋值 ** 下面是题目 首先,注意 == 的两个用法 字符串与单个字符比较 字符串与同维字符串比较 这道题困扰我的点就是 我想把不一样的字符存进一个矩阵中, ...

  3. 第二章 MATLAB数据与矩阵

    第二章 MATLAB 数据与矩阵 文章目录 第二章 MATLAB 数据与矩阵 2.1 MATLAB数据类型 2.2 变量和数据操作 2.2.1 变量与赋值 2.2.2 预定义变量 2.2.3 MATL ...

  4. 转载:MATLAB字符串函数

       | 网站首页 | 电脑学习 | 英语学堂 | 论文中心 | 试题资源 | 教案集锦 | 课件下载 | 高校联盟 | 求职创业 | 网络营销 | 实用范本 |    <script src= ...

  5. MATLAB软件应用及语法学习基础

    MATLAB初步学习笔记 1.MATLAB简介 1.1简介 MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析.无线通信.深度学习.图像处理与计算机视觉.信号处理.量化金融与风险 ...

  6. matlab 矩阵角标,MATLAB中的矩阵索引

    MATLAB中的矩阵索引 作者:SteveEddins and Loren Shure   译:王茂春 利用矩阵的索引取出原矩阵的子集元素是一种有效的方式.MATLAB的多种索引类型不仅强大.灵活,而 ...

  7. matlab字符衔接,matlab字符串连接(多个字符串)的经验,matlab字符串

    matlab字符串连接(多个字符串)的经验,matlab字符串 参考 matlab中字符串连接的3种方法  文章,实验遇到的一些小白问题,如有问题希望大神们给予指导. Matlab中,两个或多个字符串 ...

  8. 2021-02-25 matlab 字符串和数字同时写入excel

    matlab 字符串和数字同时写入excel 1.字符串用{} area={'国家','中国','澳大利亚','韩国','新西兰'}'; heng={'C0','C1','C2','C3'}; 2.数 ...

  9. matlab 数值格式转换,Matlab字符串转换及数值格式转换

    Matlab字符串转换及数值格式转换 字符串转换函数 abs 字符串到ASCII转换 dec2hex 十进制数到十六进制字符串转换 fprintf 把格式化的文本写到文件中或显示屏上 hex2dec ...

  10. matlab字符串操作总结

    matlab字符串操作总结 字符串操作总结 char(S1,S2,-) 利用给定的字符串或单元数组创建字符数组 double(S) 将字符串转化成ASC码形式 cellstr(S) 利用的给定的字符数 ...

最新文章

  1. VC下提前注入进程的一些方法1——远线程不带参数
  2. 系统提供的按钮和图标
  3. 程序员修神之路--简约而不简单的分布式通信基石
  4. 定义整型数组_C++数组的定义与初始化(学习笔记:第6章 01)
  5. docker mysql 备份_docker mysql数据备份xtrabackup
  6. STM32F103C8t6程序下载
  7. OpenCL快速入门
  8. word页码怎么从指定页开始设置?
  9. POJ 3689 Equations 已翻译
  10. wifi良好,手机可以连接网络,电脑连接不上网络,解决方法
  11. Ubuntu16.04下安装QQ的完整操作记录(经验证可用)
  12. 微信小游戏排行榜制作(主域子域)
  13. FPGA mpsoc vitis SDK PMU-FW is not running, certain application may not be supported
  14. autojs之多线程-Threads
  15. 通过Linux shell实现的花生壳动态域名解析(DDNS)
  16. 深层循环神经网络(DRNN)
  17. docker运行分布式搜索引擎ES容器max virtual memory areas vm.max_map_count [65530] is too low, increase to at leas
  18. intra-mart产品开发相关介绍资料
  19. windows找不到文件请确定文件名是否正确怎么办?
  20. 向搜索引擎提交网站的入口及技巧

热门文章

  1. 去除 WinRAR 广告
  2. 阿里巴巴实习面试经历
  3. 学生信息管理系统(C++实现)
  4. linux(Ubuntu)下Navicat的激活与无限试用
  5. taskctl控制容器之定时器个人理解
  6. Win10家庭版远程桌面工具RDP Wrapper
  7. excel或wps查找文本字符串子串或拆分字符串公式
  8. mysql 左连接与右连接的区别吗_数据库左连接和右连接有什么区别
  9. 计算机怎么退出远程桌面连接,怎么退出远程桌面控制?远程桌面软件哪个好?
  10. centos7、Linux实现文件夹共享、Linux共享文件夹后无权限访问