MATLAB笔记--上

MATLAB笔记–上

说明:本笔记仅供自己学习使用,不保证正确性,欢迎各位大佬批评指正。

第0章 初识MATLAB

1.计算

2.科学计算

3.科学计算与MATLAB语言的关系

4.主要功能

5.实例求一元二次方程的根

第1章 MATLAB基础知识

1.1 MATLAB系统环境

1.MATLAB操作界面组成

(1)MATLAB主窗口

(2)命令行窗口

(3)当前文件夹窗口

先建立文件夹,后cd

(4)工作区窗口

2.MATLAB搜索路径

(1)变量->内部函数->程序文件(当前文件夹中搜索->文件搜索路径文件夹中的程序文件)

(2)如何设置文件的搜索路径

  • 用path命令设置文件搜索路径
>>path(path,'e:\work')
  • 用对话框设置文件搜索路径
1.2 MATLAB 数值数据

1.数值数据的分类

(1)整型

  • 无符号整型(8,16,32,64)
  • 有符号整型(8,16,32,64)

( 2 ) 浮点型

  • 单精度浮点型4个字节 single()
  • 双精度浮点型8个字节(默认) double()

( 3 ) 复型(实部+虚部)

  • real()求复数的实部
  • image()求复数的虚部

2.数值数据输出格式

( 1 ) format命令的格式:format格式符

3.常用数学函数

( 1 ) 函数调用格式

函数名(函数自变量的值)

​ 函数的自变量规定为矩阵变量,当然也可以是标量,标量本身是矩阵的一种特例

( 2 ) 常用函数应用

①三角函数有以弧度和以角度为单位的,如果是以角度为单位在函数名后面加d

②abs函数可以用来求实数的绝对值、复数的模、字符串的ASCII码值

③用于取整的函数有fix–靠近0、floor–向下取整、ceil–向上取整、round–四舍五入

④求余函数rem、mod

⑤判断是否素数isprime(n)

1.3 MATLAB 变量及其操作

1.变量与赋值语句

  • 变量:内存单元的一个抽象
  • 字母开头,后接字母、数字或下划线的字符序列
  • 区分字母大小写
  • 标准函数名以及命令名一般用小写

2.预定义变量

由系统本身定义的变量

  • ans默认赋值变量
  • i,j虚数单位
  • pi圆周率
  • NaN非数

3.变量的管理

(1)内存变量的删除和修改

who/whos显示变量清单

(2)内存变量文件

用于保存MATLAB工作区变量的文件叫做内存变量文件,扩展名.mat

  • save命令:创建内存变量文件

    save my data a x

  • load命令:装入内存变量文件

    load mydata

1.4 MATLAB 矩阵表示

1.矩阵的建立

  • 直接输入
  • 小拼大
  • 实数矩阵+虚部矩阵->复数矩阵

2.冒号表达式

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

linspace函数:

linspace(a,b,n)自动产生n个数据

3.结构矩阵和单元矩阵

(1)结构矩阵

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

(2)单元矩阵

用大括号括起来

1.5 矩阵元素的引用

1.矩阵元素的引用方式

(1)通过下标来引用矩阵的元素,用圆括号括起来

(2)通过序号引用(按列存储)

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

调用格式:

D=sub2ind(S,I,J)

[I,J]=ind2sub(S,D)

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

:表示全部元素,a:b表示a到b

end运算符–某一维的末尾元素下标

3.利用空矩阵删除矩阵中元素

空矩阵:没有任何元素的矩阵

4.改变矩阵的形状

reshape(A,m,n):在总元素保持不变的情况下,将矩阵A重新排列成m*n的二维矩阵

1.6 MATLAB基本运算

1.算术运算(优先级最高)

(1)基本算术运算

  • 加减运算要求矩阵同型
  • 乘法运算AB可乘
  • 右除/、左除\(决定在哪边乘inv(A))
  • 乘方运算要求方阵

(2)点运算

.*、./、.\、.^

指的是对应元素进行计算,因此两矩阵同型

2.关系运算

六种

~=:不等于

3.逻辑运算(优先级最低)

与&、或|、非~

1.7 字符串处理

1.字符串的表示

字符串是用单引号括起来的字符序列

2.字符串的操作

eval(s)字符串的执行

abs(),double()获取字符串矩阵对应的ASCII码值

char()把ASCII码阵列转化成字符串矩阵

3.字符串的比较

  • 比较运算符:输出01矩阵
  • 字符串函数:strcmp(s1,s2)是否相等;strncmp(s1,s2,n)前n个字符是否相等;strcmpi(s1,s2)忽略大小写前提下比较两个字符串是否相等;strncmpi(s1,s2,n)在忽略字符串大小写前提下,比较两个字符串前n个字符是否相等

4.字符串的查找与替换

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

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

小结

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SXBYfoQG-1611214379686)(C:\Users\LYY\AppData\Roaming\Typora\typora-user-images\image-20210118192515673.png)]

第2章 MATLAB 矩阵处理

2.1 特殊矩阵

1.通用性的特殊矩阵

zeros(m,n)产生全0矩阵

ones(m,n)产生全1矩阵

eye产生对角线为1的矩阵(方阵即为单位矩阵)

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

randn产生均值为0方差为1的正态分布矩阵

>> A=fix(10+(99-10+1)*rand(5));#fix(a+(b-a+1)*x):产生ab区间均匀分布的随机整数,5阶随机整数A
>> B=0.6+sqrt(0.1)*randn(5);#正态随机矩阵B
>> C=eye(5);#单位矩阵C
>> (A+B)*C==C*A+B*C#验证

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

(1)魔方矩阵MS

magic(n)n阶魔方矩阵:每行、列以及主副对角线各n元素和相等,为(1+……+n2)/n=(n+n3)/2

(2)范德蒙矩阵

vander(v)0~n-1次方,用于通信编码

(3)希尔伯特矩阵

hilb(n)H(i,j)=1/(i+j+1)

(4)伴随矩阵

compan(p)多项式的伴随矩阵,p(x)称为A的特征多项式,p(x)=0的根称为A的特征值

(5)帕斯卡矩阵

pascal(n)P(i,j)=P(i,j-1)+P(i-1,j)结合杨辉三角记忆

2.2 矩阵变换

1.对角阵

只有对角线上有非0元素的矩阵,叫对角矩阵---->

对角线上元素相等,称为数量矩阵----->

对角线上的元素都为1,称为单位矩阵

(1)提取矩阵的对角元素

diag(A)提取主对角线产生列向量

diag(A,k)提取第k条对角线的元素产生列向量

(2)构造对角阵

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

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

2.三角阵

(1)上三角矩阵

triu(A)提取主对角线以上元素

triu(A,k)提取第k条对角线及以上元素

(2)下三角矩阵

tril

3.矩阵的转置

转置:A.’ 共轭转置:A’(取复共轭)

4.矩阵的旋转

rot90(A,k)90度的k倍

5.矩阵的翻转

fliplr(A)左右翻转

flipud(A)上下翻转

6.矩阵的求逆

inv(A)

实例:用求逆的方法解线性方程组Ax=b

>>x=inv(A)*b
2.3 矩阵求值

1.方阵的行列式

det(A)

2.矩阵的秩

rank(A)矩阵线性无关的行数或列数

实例:求3~20阶魔方阵的秩

for n=3:20
	r(n)=rank(magic(n));
end#求3~20魔方阵的秩形成向量r
bar(r)#绘制直方图
grid on
axis([2,21,0,20])

奇数阶魔方阵秩为n

一重偶数阶魔方阵秩为n/2+2

双重偶数阶魔方阵秩为3

3.矩阵的迹

trace(A)主对角线元素之和

4.向量和矩阵的范数

(1)向量的常用三种范数

  • norm(V,1)向量1–范数:向量元素的绝对值之和
  • norm(V)/norm(V,2)向量2–范数:向量元素绝对值得平方和的平方根
  • norm(V,inf)向量∞–范数:所有向量元素绝对值中的最大值

(2)矩阵的范数

  • norm(V,1)矩阵1–范数:矩阵列元素的绝对值之和的最大值

  • norm(V)/norm(V,2)矩阵2–范数:A转置与A乘积矩阵的最大特征值的平方根

  • norm(V,inf)矩阵∞–范数:所有矩阵行元素绝对值之和的最大值

5.矩阵的条件数

A的范数和A的逆矩阵范数的乘积,条件数越接近1,性能越好

  • 1–范数的条件数cond(A,1)

  • 2–范数的条件数cond(A)/cond(A,2)

  • ∞–范数的条件数cond(A,inf)

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

1.求矩阵的特征值和特征向量

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

  • [X,D]=eig(A)求矩阵A的全部特征值,构成对角阵D,并产生矩阵X,X各列是相应的特征向量

2.特征值的几何意义

eigshow

2.5 稀疏矩阵

1.矩阵的存储方式

  • 完全存储方式
  • 稀疏存储方式:只存储非0元素的值及其位置,即行号和列号(按列存储)

2.稀疏存储方式的产生

(1)完全存储方式与稀疏存储方式之间的转换

  • A=sparse(S)将矩阵S转化为稀疏存储方式的矩阵A
  • S=full(A)将矩阵A转化为完全存储方式的矩阵S

(2)直接建立稀疏存储矩阵

  • sparse(m,n)全0
  • sparse(u,v,S)行下标、列下标、非0元素
  • B=spconvert(A)列:行列实部虚部

(3)带状稀疏矩阵的稀疏存储

无规则结构的稀疏矩阵

有规则结构的稀疏矩阵

带状稀疏矩阵是有规则结构的稀疏矩阵,是指所有非0元素集中在对角线上的矩阵

  • [B,d]=spdiags(A):从带状稀疏矩阵A中提取全部非0对角线元素赋给矩阵B及其这些非0对角线的位置向量d
  • A=spdiags(B,d,m,n):产生带状稀疏矩阵的稀疏存储矩阵A

(4)单位矩阵的稀疏存储

speye(m,n)返回一个m*n的稀疏存储单位矩阵

小结

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qJDNyPNe-1611214379691)(C:\Users\LYY\AppData\Roaming\Typora\typora-user-images\image-20210119132059960.png)]

第3章 MATLAB程序流程控制

1.程序与程序设计

分析问题–>算法设计–>设计程序

2.程序的三种基本结构

扩展名为.m

3.脚本文件和函数文件

  • 脚本文件:可以在命令行窗口直接执行的文件,也叫命令文件

  • 函数文件:不能直接执行,必须以函数调用的方式来调用它

    function C=f2(A,B)
    C=A*B;
    

4.文件的建立

  • 命令按钮创建文件:主页–>新建脚本
  • 用edit命令创建文件:>>edit test
3.1 顺序结构

1.数据的输入与输出

  • 输入:

    A=input(提示信息,选项)

  • 输出:

    disp(输出项);

  • 程序的暂停

    pause(延迟秒数)

    若要强制终止程序运行可Ctrl+C

2.包括内容

  • 输入原始数据
  • 对原始数据进行处理
  • 输出处理结果
3.2 用if实现选择结构

1.单分支if语句

if 条件

​ 语句组

end

如果条件为矩阵,有0条件不成立

2.双分支if语句

if 条件

​ 语句组1

else

​ 语句组2

end

3.多分支if语句

if 条件1

​ 语句组1

elseif 条件2

​ 语句组2

​ ……

elseif 条件m

​ 语句组m

else

​ 语句组n

end

3.3 用switch实现选择结构

1.格式

switch 表达式

​ case 结果表1

​ 语句组1

​ case 结果表2

​ 语句组2

​ ……

​ case 结果表m

​ 语句组m

​ otherwise

​ 语句组n

end

3.4 用for实现循环结构

1.格式

for 循环变量=表达式1(初值):表达式2(步长):表达式3(终值)

​ 循环体语句

end

说明:for语句也可以是对列的操作

3.5 用while实现循环结构

1.格式

while 条件

​ 循环体语句

end

2.break和continue语句

break–终止,continue–下一次循环

3.循环的嵌套

实例:

m=input('m=');
p=1:m;
p(1)=0;
for i=2:sqrt(m)
	for j=2*i:i:m
		p(j)=0;
	end
end
n=find(p~=0);
p(n)
3.6 函数文件的定义与调用

1.函数文件的基本结构

function 输出形参表=函数名(输入形参表)

注释说明部分

函数体语句

2.函数调用格式:

[输出实参表]=函数名(输入实参表)

3.匿名函数格式

函数句柄变量=@(匿名函数输入参数)匿名函数表达式

函数句柄变量=@函数名

3.7 函数的递归调用

1.函数的嵌套调用

2.函数的递归调用

(1)直接递归调用

(2)间接递归调用

3.8 函数参数与变量的作用域

1.函数参数可调性

nargin记录输入实参个数

nargout记录输出实参个数

2.全局变量和局部变量

global 变量名

小结

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QAEtD6Xr-1611214379694)(C:\Users\LYY\AppData\Roaming\Typora\typora-user-images\image-20210120094056767.png)]

第4章 MATLAB绘图

4.1 二维曲线

1.plot函数

(1)plot(x,y)x,y长度相等的向量

(2)plot(x)x坐标默认1,2,3……(实数情况),实部做x虚部做y(虚数情况)

(3)plot(x,y)x是向量,y是矩阵时

  • 如果矩阵的列数等于向量的长度,则以向量为横坐标,y的行向量为纵坐标绘制曲线,曲线条数等于y的行数
  • 如果y的行数等于x的长度,则以向量x为横坐标,y的列向量为纵坐标绘制,曲线条数等于y的列数
  • x,y同型矩阵,以x,y对应列元素为横、纵坐标绘制曲线,曲线条数等于列数
x=linspace(0.2*pi,100);
y=[sin(x);sin(2*x);sin(0.5*x)];
plot(x,y);

(4)含选项的plot函数

plot(x,y,选项)线型选项(实线-、虚线:、点画线-.、双画线–),颜色选项(颜色首字母),数据点标记

2.fplot函数(自适应)

(1)fplot(f,lims,选项)

(2)fplot(funx,funy,tlims,选项)参数方程

4.2 绘制曲线的辅助操作

1.图形标注

  • title(标题)可继续在后面添加字体、颜色属性名+属性值
  • xlabel(x轴说明)
  • ylabel(y轴说明)
  • text(x,y,图形说明)
  • legend(图例1,图例2,……)

2.坐标控制

(1)axis函数

axis([xmin,xmax,ymin,ymax,zmin,zmax])

(2)加网格和边框

grid–显示与否on/off网格线

box–显示与否on/off边框

3.图形保持

hold on/off

4.图形窗口的分割

subplot(m,n,p)行优先编号

4.3 其他形式的二维曲线

1.其他坐标系下的二维曲线图

(1)对数坐标图

semilogx(x1,y1,选项1,x2,y2,选项2,……)

semilogy(x1,y1,选项1,x2,y2,选项2,……)

loglog(x1,y1,选项1,x2,y2,选项2,……)

(2)极坐标图

polar(theta,rho,选项)

2.统计图

(1)条形图

bar(y,style)纵向条形图

barh(y,style)横向条形图

hist(y,x)x表示指定区间划分方式,缺省默认10

实例:

y=randn(500,1);
subplot(2,1,1);
hist(y);
title('高斯分布直方图');
subplot(2,1,2);
x=-3:0.2:3;
hist(y,x);
title('指定区间中心点的直方图')

rose(theta,x)极坐标直方图

(2)面积统计图

pie(x,explode)画饼图

(3)散点类图形

scatter(x,y,选项,'filled')散点图

stairs阶梯图

stem杆图

3.矢量类图形

  • compass函数:罗盘图
  • feather函数:羽毛图
  • quiver(x,y,u,v)函数:箭头图
4.4 三维曲线

1.plot3函数

plot(x,y,z)

2.fplot3函数(参数方程)

fplot3(funx,funy,funz,tlims)

4.5 三维曲面

1.平面网格数据的生成

(1)利用矩阵运算生成

(2)利用meshgrid函数生成

[X,Y]=meshgrid(x,y)

2.绘制三维曲面的函数

mesh(x,y,z,c)c表示颜色

surf(x,y,z,c)

meshc带等高线的三维网格曲面函数

meshz带底座的三维网格曲面函数

surfc具有等高线的曲面函数

surfl具有光照效果的曲面函数

3.标准三维曲面

[x,y,z]=sphere(n)单位球

[x,y,z]=cylinder(R,n)柱面

peaks多峰函数

4.fsurf和fmesh

fsurf(funx,funy,funz,uvlims)

fmesh(funx,funy,funz,uvlims)

4.6 图形修饰处理

1.视点处理

(1)view函数

view(az方位角,el仰角)

2.色彩处理

(1)向量表示

[R G B]

(2)色图

  • 色图矩阵
  • 内建色图(64行三列)

指定色图:colormap cmapname colormap(cmap)

(3)表面着色

shading faceted黑色网格线 shading flat相应颜色 shading interp插值

3.图形的裁剪

NaN的使用

4.7 交互式绘图工具

1.绘图选项卡

所选内容、绘图、选项

2.绘图工具plottools

3.图形窗口菜单和工具栏

小结

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p6nP5t3X-1611214379700)(C:\Users\LYY\AppData\Roaming\Typora\typora-user-images\image-20210121115353477.png)]

第5章 数据分析与多项式计算

5.1 数据统计分析

1.求最大元素和最小元素

max(x) min(x)

2.求矩阵的平均值和中值

mean(x) median(x)

3.求和和求积

sum(x) prod(x)

4.累加和和累乘积

cumsum(A) comprod(A)

向量

5.标准差与相关系数

std(A,flag,dim)计算标准差

corrcoef相关系数函数

6.排序

[Y,I]=sort(A,dim,mode)

5.2 多项式计算

1.多项式的表示

n+1的行向量表示

2.多项式的四则运算

  • 加减
  • 乘法conv(P1,p2)
  • 除法[Q,r]=deconv(P1,P2)多项式相除函数

3.多项式求导

5.3 数据插值

0.定义

根据有限点取值,合理估算附近其他点取值

从而节约大量的实验和测试资源,节省大量的人力、物力和财力

1.零件加工问题

x=[0,3,5,7,9,11,12,13,14,15];
y=[0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6];
x1=0:0.1:15;
y1=interp1(x,y,x1,'spline');#插值后y1向量
plot(x1,y1);

2.数据插值的计算机制

构造近似函数逼近以估计未知函数

interp1(X,Y,X1,method)

interp2(X,Y,Z,X1,Y1,method)

3.数据插值的实现方法method

  • interp1()

(1)线性插值linear(默认方法)

(2)最近点插值nearest

(3)分段三次埃尔米特插值pchip(一阶导数相等、光滑保形)

(4)三次样条插值spline(一阶二阶导连续)

  • interp2()

(1)线性插值linear(默认方法)

(2)最近点插值nearest

(3)三次样条插值spline(一阶二阶导连续)

4.粮储仓的通风控制问题

5.4 数据插值应用举例

1.机动车刹车距离问题

2.沙盘制作问题

等高线图 contour(x2,y2,z2,12)

5.5 曲线拟合

函数逼近方法

1.人口预测问题

找一个函数,去逼近这些数据,然后再根据找到的函数,计算预测点的值

polyfit()

2.曲线拟合的原理

最小二乘法

3.曲线拟合的实现方法

P=polyfit(X,Y,m)

[P,S]=polyfit(X,Y,m)

[P,S,mu]=polyfit(X,Y,m)多项式拟合函数

5.6 曲线拟合应用举例

1.股票预测问题

波动性太大,需要多重考虑

2.算法的参数优化问题

小结

第0章 初识MATLAB

1.计算

2.科学计算

3.科学计算与MATLAB语言的关系

4.主要功能

5.实例求一元二次方程的根

第1章 MATLAB基础知识

1.1 MATLAB系统环境

1.MATLAB操作界面组成

(1)MATLAB主窗口

(2)命令行窗口

(3)当前文件夹窗口

先建立文件夹,后cd

(4)工作区窗口

2.MATLAB搜索路径

(1)变量->内部函数->程序文件(当前文件夹中搜索->文件搜索路径文件夹中的程序文件)

(2)如何设置文件的搜索路径

  • 用path命令设置文件搜索路径
>>path(path,'e:\work')
  • 用对话框设置文件搜索路径
1.2 MATLAB 数值数据

1.数值数据的分类

(1)整型

  • 无符号整型(8,16,32,64)
  • 有符号整型(8,16,32,64)

( 2 ) 浮点型

  • 单精度浮点型4个字节 single()
  • 双精度浮点型8个字节(默认) double()

( 3 ) 复型(实部+虚部)

  • real()求复数的实部
  • image()求复数的虚部

2.数值数据输出格式

( 1 ) format命令的格式:format格式符

3.常用数学函数

( 1 ) 函数调用格式

函数名(函数自变量的值)

​ 函数的自变量规定为矩阵变量,当然也可以是标量,标量本身是矩阵的一种特例

( 2 ) 常用函数应用

①三角函数有以弧度和以角度为单位的,如果是以角度为单位在函数名后面加d

②abs函数可以用来求实数的绝对值、复数的模、字符串的ASCII码值

③用于取整的函数有fix–靠近0、floor–向下取整、ceil–向上取整、round–四舍五入

④求余函数rem、mod

⑤判断是否素数isprime(n)

1.3 MATLAB 变量及其操作

1.变量与赋值语句

  • 变量:内存单元的一个抽象
  • 字母开头,后接字母、数字或下划线的字符序列
  • 区分字母大小写
  • 标准函数名以及命令名一般用小写

2.预定义变量

由系统本身定义的变量

  • ans默认赋值变量
  • i,j虚数单位
  • pi圆周率
  • NaN非数

3.变量的管理

(1)内存变量的删除和修改

who/whos显示变量清单

(2)内存变量文件

用于保存MATLAB工作区变量的文件叫做内存变量文件,扩展名.mat

  • save命令:创建内存变量文件

    save my data a x

  • load命令:装入内存变量文件

    load mydata

1.4 MATLAB 矩阵表示

1.矩阵的建立

  • 直接输入
  • 小拼大
  • 实数矩阵+虚部矩阵->复数矩阵

2.冒号表达式

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

linspace函数:

linspace(a,b,n)自动产生n个数据

3.结构矩阵和单元矩阵

(1)结构矩阵

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

(2)单元矩阵

用大括号括起来

1.5 矩阵元素的引用

1.矩阵元素的引用方式

(1)通过下标来引用矩阵的元素,用圆括号括起来

(2)通过序号引用(按列存储)

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

调用格式:

D=sub2ind(S,I,J)

[I,J]=ind2sub(S,D)

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

:表示全部元素,a:b表示a到b

end运算符–某一维的末尾元素下标

3.利用空矩阵删除矩阵中元素

空矩阵:没有任何元素的矩阵

4.改变矩阵的形状

reshape(A,m,n):在总元素保持不变的情况下,将矩阵A重新排列成m*n的二维矩阵

1.6 MATLAB基本运算

1.算术运算(优先级最高)

(1)基本算术运算

  • 加减运算要求矩阵同型
  • 乘法运算AB可乘
  • 右除/、左除\(决定在哪边乘inv(A))
  • 乘方运算要求方阵

(2)点运算

.*、./、.\、.^

指的是对应元素进行计算,因此两矩阵同型

2.关系运算

六种

~=:不等于

3.逻辑运算(优先级最低)

与&、或|、非~

1.7 字符串处理

1.字符串的表示

字符串是用单引号括起来的字符序列

2.字符串的操作

eval(s)字符串的执行

abs(),double()获取字符串矩阵对应的ASCII码值

char()把ASCII码阵列转化成字符串矩阵

3.字符串的比较

  • 比较运算符:输出01矩阵
  • 字符串函数:strcmp(s1,s2)是否相等;strncmp(s1,s2,n)前n个字符是否相等;strcmpi(s1,s2)忽略大小写前提下比较两个字符串是否相等;strncmpi(s1,s2,n)在忽略字符串大小写前提下,比较两个字符串前n个字符是否相等

4.字符串的查找与替换

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

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

小结

在这里插入图片描述

第2章MATLAB 矩阵处理

2.1 特殊矩阵

1.通用性的特殊矩阵

zeros(m,n)产生全0矩阵

ones(m,n)产生全1矩阵

eye产生对角线为1的矩阵(方阵即为单位矩阵)

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

randn产生均值为0方差为1的正态分布矩阵

>> A=fix(10+(99-10+1)*rand(5));#fix(a+(b-a+1)*x):产生ab区间均匀分布的随机整数,5阶随机整数A
>> B=0.6+sqrt(0.1)*randn(5);#正态随机矩阵B
>> C=eye(5);#单位矩阵C
>> (A+B)*C==C*A+B*C#验证

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

(1)魔方矩阵MS

magic(n)n阶魔方矩阵:每行、列以及主副对角线各n元素和相等,为(1+……+n2)/n=(n+n3)/2

(2)范德蒙矩阵

vander(v)0~n-1次方,用于通信编码

(3)希尔伯特矩阵

hilb(n)H(i,j)=1/(i+j+1)

(4)伴随矩阵

compan(p)多项式的伴随矩阵,p(x)称为A的特征多项式,p(x)=0的根称为A的特征值

(5)帕斯卡矩阵

pascal(n)P(i,j)=P(i,j-1)+P(i-1,j)结合杨辉三角记忆

2.2 矩阵变换

1.对角阵

只有对角线上有非0元素的矩阵,叫对角矩阵---->

对角线上元素相等,称为数量矩阵----->

对角线上的元素都为1,称为单位矩阵

(1)提取矩阵的对角元素

diag(A)提取主对角线产生列向量

diag(A,k)提取第k条对角线的元素产生列向量

(2)构造对角阵

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

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

2.三角阵

(1)上三角矩阵

triu(A)提取主对角线以上元素

triu(A,k)提取第k条对角线及以上元素

(2)下三角矩阵

tril

3.矩阵的转置

转置:A.’ 共轭转置:A’(取复共轭)

4.矩阵的旋转

rot90(A,k)90度的k倍

5.矩阵的翻转

fliplr(A)左右翻转

flipud(A)上下翻转

6.矩阵的求逆

inv(A)

实例:用求逆的方法解线性方程组Ax=b

>>x=inv(A)*b
2.3 矩阵求值

1.方阵的行列式

det(A)

2.矩阵的秩

rank(A)矩阵线性无关的行数或列数

实例:求3~20阶魔方阵的秩

for n=3:20
	r(n)=rank(magic(n));
end#求3~20魔方阵的秩形成向量r
bar(r)#绘制直方图
grid on
axis([2,21,0,20])

奇数阶魔方阵秩为n

一重偶数阶魔方阵秩为n/2+2

双重偶数阶魔方阵秩为3

3.矩阵的迹

trace(A)主对角线元素之和

4.向量和矩阵的范数

(1)向量的常用三种范数

  • norm(V,1)向量1–范数:向量元素的绝对值之和
  • norm(V)/norm(V,2)向量2–范数:向量元素绝对值得平方和的平方根
  • norm(V,inf)向量∞–范数:所有向量元素绝对值中的最大值

(2)矩阵的范数

  • norm(V,1)矩阵1–范数:矩阵列元素的绝对值之和的最大值

  • norm(V)/norm(V,2)矩阵2–范数:A转置与A乘积矩阵的最大特征值的平方根

  • norm(V,inf)矩阵∞–范数:所有矩阵行元素绝对值之和的最大值

5.矩阵的条件数

A的范数和A的逆矩阵范数的乘积,条件数越接近1,性能越好

  • 1–范数的条件数cond(A,1)

  • 2–范数的条件数cond(A)/cond(A,2)

  • ∞–范数的条件数cond(A,inf)

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

1.求矩阵的特征值和特征向量

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

  • [X,D]=eig(A)求矩阵A的全部特征值,构成对角阵D,并产生矩阵X,X各列是相应的特征向量

2.特征值的几何意义

eigshow

2.5 稀疏矩阵

1.矩阵的存储方式

  • 完全存储方式
  • 稀疏存储方式:只存储非0元素的值及其位置,即行号和列号(按列存储)

2.稀疏存储方式的产生

(1)完全存储方式与稀疏存储方式之间的转换

  • A=sparse(S)将矩阵S转化为稀疏存储方式的矩阵A
  • S=full(A)将矩阵A转化为完全存储方式的矩阵S

(2)直接建立稀疏存储矩阵

  • sparse(m,n)全0
  • sparse(u,v,S)行下标、列下标、非0元素
  • B=spconvert(A)列:行列实部虚部

(3)带状稀疏矩阵的稀疏存储

无规则结构的稀疏矩阵

有规则结构的稀疏矩阵

带状稀疏矩阵是有规则结构的稀疏矩阵,是指所有非0元素集中在对角线上的矩阵

  • [B,d]=spdiags(A):从带状稀疏矩阵A中提取全部非0对角线元素赋给矩阵B及其这些非0对角线的位置向量d
  • A=spdiags(B,d,m,n):产生带状稀疏矩阵的稀疏存储矩阵A

(4)单位矩阵的稀疏存储

speye(m,n)返回一个m*n的稀疏存储单位矩阵

小结

在这里插入图片描述

第3章 MATLAB程序流程控制

1.程序与程序设计

分析问题–>算法设计–>设计程序

2.程序的三种基本结构

扩展名为.m

3.脚本文件和函数文件

  • 脚本文件:可以在命令行窗口直接执行的文件,也叫命令文件

  • 函数文件:不能直接执行,必须以函数调用的方式来调用它

    function C=f2(A,B)
    C=A*B;
    

4.文件的建立

  • 命令按钮创建文件:主页–>新建脚本
  • 用edit命令创建文件:>>edit test
3.1 顺序结构

1.数据的输入与输出

  • 输入:

    A=input(提示信息,选项)

  • 输出:

    disp(输出项);

  • 程序的暂停

    pause(延迟秒数)

    若要强制终止程序运行可Ctrl+C

2.包括内容

  • 输入原始数据
  • 对原始数据进行处理
  • 输出处理结果
3.2 用if实现选择结构

1.单分支if语句

if 条件

​ 语句组

end

如果条件为矩阵,有0条件不成立

2.双分支if语句

if 条件

​ 语句组1

else

​ 语句组2

end

3.多分支if语句

if 条件1

​ 语句组1

elseif 条件2

​ 语句组2

​ ……

elseif 条件m

​ 语句组m

else

​ 语句组n

end

3.3 用switch实现选择结构

1.格式

switch 表达式

​ case 结果表1

​ 语句组1

​ case 结果表2

​ 语句组2

​ ……

​ case 结果表m

​ 语句组m

​ otherwise

​ 语句组n

end

3.4 用for实现循环结构

1.格式

for 循环变量=表达式1(初值):表达式2(步长):表达式3(终值)

​ 循环体语句

end

说明:for语句也可以是对列的操作

3.5 用while实现循环结构

1.格式

while 条件

​ 循环体语句

end

2.break和continue语句

break–终止,continue–下一次循环

3.循环的嵌套

实例:

m=input('m=');
p=1:m;
p(1)=0;
for i=2:sqrt(m)
	for j=2*i:i:m
		p(j)=0;
	end
end
n=find(p~=0);
p(n)
3.6 函数文件的定义与调用

1.函数文件的基本结构

function 输出形参表=函数名(输入形参表)

注释说明部分

函数体语句

2.函数调用格式:

[输出实参表]=函数名(输入实参表)

3.匿名函数格式

函数句柄变量=@(匿名函数输入参数)匿名函数表达式

函数句柄变量=@函数名

3.7 函数的递归调用

1.函数的嵌套调用

2.函数的递归调用

(1)直接递归调用

(2)间接递归调用

3.8 函数参数与变量的作用域

1.函数参数可调性

nargin记录输入实参个数

nargout记录输出实参个数

2.全局变量和局部变量

global 变量名

小结

在这里插入图片描述

第4章 MATLAB绘图

4.1 二维曲线

1.plot函数

(1)plot(x,y)x,y长度相等的向量

(2)plot(x)x坐标默认1,2,3……(实数情况),实部做x虚部做y(虚数情况)

(3)plot(x,y)x是向量,y是矩阵时

  • 如果矩阵的列数等于向量的长度,则以向量为横坐标,y的行向量为纵坐标绘制曲线,曲线条数等于y的行数
  • 如果y的行数等于x的长度,则以向量x为横坐标,y的列向量为纵坐标绘制,曲线条数等于y的列数
  • x,y同型矩阵,以x,y对应列元素为横、纵坐标绘制曲线,曲线条数等于列数
x=linspace(0.2*pi,100);
y=[sin(x);sin(2*x);sin(0.5*x)];
plot(x,y);

(4)含选项的plot函数

plot(x,y,选项)线型选项(实线-、虚线:、点画线-.、双画线–),颜色选项(颜色首字母),数据点标记

2.fplot函数(自适应)

(1)fplot(f,lims,选项)

(2)fplot(funx,funy,tlims,选项)参数方程

4.2 绘制曲线的辅助操作

1.图形标注

  • title(标题)可继续在后面添加字体、颜色属性名+属性值
  • xlabel(x轴说明)
  • ylabel(y轴说明)
  • text(x,y,图形说明)
  • legend(图例1,图例2,……)

2.坐标控制

(1)axis函数

axis([xmin,xmax,ymin,ymax,zmin,zmax])

(2)加网格和边框

grid–显示与否on/off网格线

box–显示与否on/off边框

3.图形保持

hold on/off

4.图形窗口的分割

subplot(m,n,p)行优先编号

4.3 其他形式的二维曲线

1.其他坐标系下的二维曲线图

(1)对数坐标图

semilogx(x1,y1,选项1,x2,y2,选项2,……)

semilogy(x1,y1,选项1,x2,y2,选项2,……)

loglog(x1,y1,选项1,x2,y2,选项2,……)

(2)极坐标图

polar(theta,rho,选项)

2.统计图

(1)条形图

bar(y,style)纵向条形图

barh(y,style)横向条形图

hist(y,x)x表示指定区间划分方式,缺省默认10

实例:

y=randn(500,1);
subplot(2,1,1);
hist(y);
title('高斯分布直方图');
subplot(2,1,2);
x=-3:0.2:3;
hist(y,x);
title('指定区间中心点的直方图')

rose(theta,x)极坐标直方图

(2)面积统计图

pie(x,explode)画饼图

(3)散点类图形

scatter(x,y,选项,'filled')散点图

stairs阶梯图

stem杆图

3.矢量类图形

  • compass函数:罗盘图
  • feather函数:羽毛图
  • quiver(x,y,u,v)函数:箭头图
4.4 三维曲线

1.plot3函数

plot(x,y,z)

2.fplot3函数(参数方程)

fplot3(funx,funy,funz,tlims)

4.5 三维曲面

1.平面网格数据的生成

(1)利用矩阵运算生成

(2)利用meshgrid函数生成

[X,Y]=meshgrid(x,y)

2.绘制三维曲面的函数

mesh(x,y,z,c)c表示颜色

surf(x,y,z,c)

meshc带等高线的三维网格曲面函数

meshz带底座的三维网格曲面函数

surfc具有等高线的曲面函数

surfl具有光照效果的曲面函数

3.标准三维曲面

[x,y,z]=sphere(n)单位球

[x,y,z]=cylinder(R,n)柱面

peaks多峰函数

4.fsurf和fmesh

fsurf(funx,funy,funz,uvlims)

fmesh(funx,funy,funz,uvlims)

4.6 图形修饰处理

1.视点处理

(1)view函数

view(az方位角,el仰角)

2.色彩处理

(1)向量表示

[R G B]

(2)色图

  • 色图矩阵
  • 内建色图(64行三列)

指定色图:colormap cmapname colormap(cmap)

(3)表面着色

shading faceted黑色网格线 shading flat相应颜色 shading interp插值

3.图形的裁剪

NaN的使用

4.7 交互式绘图工具

1.绘图选项卡

所选内容、绘图、选项

2.绘图工具plottools

3.图形窗口菜单和工具栏

小结

在这里插入图片描述

第5章 数据分析与多项式计算

5.1 数据统计分析

1.求最大元素和最小元素

max(x) min(x)

2.求矩阵的平均值和中值

mean(x) median(x)

3.求和和求积

sum(x) prod(x)

4.累加和和累乘积

cumsum(A) comprod(A)

向量

5.标准差与相关系数

std(A,flag,dim)计算标准差

corrcoef相关系数函数

6.排序

[Y,I]=sort(A,dim,mode)

5.2 多项式计算

1.多项式的表示

n+1的行向量表示

2.多项式的四则运算

  • 加减
  • 乘法conv(P1,p2)
  • 除法[Q,r]=deconv(P1,P2)多项式相除函数

3.多项式求导

5.3 数据插值

0.定义

根据有限点取值,合理估算附近其他点取值

从而节约大量的实验和测试资源,节省大量的人力、物力和财力

1.零件加工问题

x=[0,3,5,7,9,11,12,13,14,15];
y=[0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6];
x1=0:0.1:15;
y1=interp1(x,y,x1,'spline');#插值后y1向量
plot(x1,y1);

2.数据插值的计算机制

构造近似函数逼近以估计未知函数

interp1(X,Y,X1,method)

interp2(X,Y,Z,X1,Y1,method)

3.数据插值的实现方法method

  • interp1()

(1)线性插值linear(默认方法)

(2)最近点插值nearest

(3)分段三次埃尔米特插值pchip(一阶导数相等、光滑保形)

(4)三次样条插值spline(一阶二阶导连续)

  • interp2()

(1)线性插值linear(默认方法)

(2)最近点插值nearest

(3)三次样条插值spline(一阶二阶导连续)

4.粮储仓的通风控制问题

5.4 数据插值应用举例

1.机动车刹车距离问题

2.沙盘制作问题

等高线图 contour(x2,y2,z2,12)

5.5 曲线拟合

函数逼近方法

1.人口预测问题

找一个函数,去逼近这些数据,然后再根据找到的函数,计算预测点的值

polyfit()

2.曲线拟合的原理

最小二乘法

3.曲线拟合的实现方法

P=polyfit(X,Y,m)

[P,S]=polyfit(X,Y,m)

[P,S,mu]=polyfit(X,Y,m)多项式拟合函数

5.6 曲线拟合应用举例

1.股票预测问题

波动性太大,需要多重考虑

2.算法的参数优化问题

小结

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值