MATLAB语言基础

MATLAB语言基础

本套笔记于学习《MATLAB语言基础》课程所载(中国大学MOOC平台)
MATLAB语言基础
笔记内容包括常用的MATLAB图形和脚本的编写,其中若有相关错误也请各位指出。内容较多,可以根据目录跳转。本笔记最后更改时间:2023年5月8日。

第一章 MATLAB概述

一、MATLAB的发展

  1. 美国Mathworks公司于1984年正式推出,随后逐次升级。目前通常每年更新两次,例如2021a,2021b。用于数值计算和图形处理的系统环境
  2. MATLAB(MATrix LABoratory)(矩阵实验室)是一种以矩阵运算为基础的交互式程序语言。
  3. 只有一种数据类型,一种标准的输入输出语句,不需编译。

二、MATLAB的优点

除具备卓越的数值计算能力外,还提供专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能。每个变量代表一个矩阵;每个元素都看作复数;所有运算都对矩阵和复数有效;指令表达式与数学、工程中常用的形式非常相似

  1. 友好的工作平台和编辑环境:许多工具采用图形用户界面,包括MATLAB桌面和一些窗口,例如命令窗口、编辑器和调试器等;程序不必经过编译就可以直接运行,能及时报告出现的错误并分析错误的原因。
  2. 简单易用的程序语言:MATLAB是一种高级的矩阵/阵列语言。语法特征更符合科技人员对数学表达式的书写格式,非常适合非计算机专业的人员使用。
  3. 强大的数学计算和数据处理能力:包含600多种数学运算函数,可以方便地实现用户所需的各种计算功能。例如矩阵、特征向量、傅里叶变换、线性方程求解、微分方程求解、复数、三角函数、多维数组运算等。矩阵的行数、列数无需事先定义。
  4. 强大而简易的绘图功能:能根据输入数据自动确定坐标绘图;能规定多种坐标系;能绘制三维坐标中的曲线和曲面;可设置不同的颜色、线型和视角等。
  5. 功能丰富,可扩展性强:有丰富的内部函数和工具箱。工具箱包括信号处理、图像处理、控制系统、神经元网络、小波分析、金融等,几乎涉及各个方面。

三、MATLAB的工作环境

  1. 命令窗(Command Window)
    是对MATLAB进行操作的主要载体。默认情况下,启动MATLAB时就打开命令窗。MATLAB的所有函数和命令都可以在命令窗执行。
    程序的运行结果(除图形外)都显示在命令窗。
  2. 图形窗(Figure Window)
    显示图形的窗口。执行绘图命令后自动弹出。
  3. 文本编辑窗(File Editor)
    编写和修改文件程序的窗口。

四、帮助系统

命令窗口的帮助系统。

  1. help:查找所有命令或函数的使用方法。
    help+函数名
  2. lookfor:在不知道某命令或函数的确切名称时查找其功能。
    lookfor+关键字

第二章 矩阵及其运算

第一节 MATLAB变量

  1. MATLAB的特殊常量
    特殊常量是一些预先定义好的数值变量

    含义符号
    圆周率πpi
    虚数单位i或j
    无穷大∞inf
    非数NaN
    默认结果存储变量(临时变量)ans
  2. 变量的命名规则
    所有的变量都表示一个矩阵或一个向量
    (1)变量名由大、小写的英文字母、数字和下划线等组成,但首位必须是英文字母
    (2)变量名区分大小写;
    (3)变量名不能是MATLAB的命令、函数、M文件名,以免引起逻辑运行错误;
    (4)变量名的长度不能过长。

  3. 变量的定义与赋值
    变量不需要先定义后使用,MATLAB会自动根据实际赋值的类型对变量类型进行定义
    (1)赋值语句的一般形式:
    变量 = 数/字符/表达式

a=1
x='s'
y=(1+2+3)/5*4

注意:单引号必须在英文状态下输入;数值变量的类型自动定义为双精度变量。

  1. 变量的显示
    (1)显示格式:MATLAB中的数据存储和计算都是以双精度进行,但可以用format命令改变数据的显示格式。
    (2)变量的显示命令:直接在命令行输入变量名再回车即可。用disp函数可以紧凑型格式显示结果而不输出变量名。
    例:
A = magic(3)
disp('这是一个3行3列的魔方矩阵')
disp(A)
  1. 变量的存取
    可以通过多种方式实现一个或多个变量的选择性存取
    (1)命令:
    save实现从内存到硬盘的存储;
    load实现从硬盘到内存的载入。
    ①格式1:
load 文件名 变量名
save 文件名 变量名

②格式2:

S = load('文件名','格式','变量名')
S = save('文件名','格式','变量名')

③快捷方式:利用工作空间窗口

  1. 变量的清除
    clear命令可以删除一个、多个或所有变量。
  • 格式:
clear 变量名
clear 变量1 变量2 ···
clear all

注意: clear是从内存中删除变量,delete是从硬盘上删除数据文件

  1. 变量的检查
    检查工作空间中的变量及其阶数
    ① who:显示前面用过的变量
    ② whos:显示前面用过的变量及其详细特征
    注意:MATLAB中所有的命令和函数都用小写字母表示。

第二节 一维数组的创建与元素提取

  1. 一维数组(向量)的创建

(1)直接输入法
从键盘直接键入元素;

  • 列与列之间的数据用逗号或空格分隔;
  • 行与行之间的数据用分号分隔。
a=[1;2;3] %生成列向量
b=[1,2,3] %生成行向量
c=[1 2 3] %生成行向量

说明:

  • 行中写多条语句时,逗号和分号可以作为语句间的分隔符。
  • 用分号,则命令窗不显示运行结果。

(2)冒号生成法
用于产生递增或递减的等差数列
格式:初值:[步长]:终值
说明:当步长缺省时,默认值为1。
示例:

a=1:2:6
b=1:6

(3)定数线性采样法
用于产生起止于两点之间的n个数据点。
格式:x=linspace(a,b,[n])
说明:当n缺省时,默认值为100
示例:

b=linspace(1,6,6) % 等同于b=1:6

(4)拼接法

  • 利用已有的一维数组创建新的一维数组。
  • 将两个行向量或列向量拼接为一个行向量或列向量,也可以利用冒号抽取其中的部分数据生成新的一维数组。
    ①行向量拼接:用方括号和逗号
    示例:a3=[a1,a2]
    ②列向量拼接:用方括号和分号
    示例:b3=[b1;b2]
    ③向量的抽取:用冒号
    示例:a4=a3(1:2:end) % 抽取a3中奇数位置的数组成新的数组

实例演示
创建两个不同的一维行向量和列向量,并利用这两个向量拼接成一个新的行向量和列向量,然后再由新向量中的奇数位置元素组成新的向量。

x1= 1:3
x2= linspace(5,20,4)
x= [x1,x2]
y1=[1:3]'
y2= linspace(5,20,4)'
y= [y1;y2]
x3= x(1:2:end)
y3= y(1:2:end)
  1. 一维数组中元素的提取
    利用圆括号和索引号。
    例:
A=[1 2 3 4 5]
a3=A(3)
%提取出数组A中第三个数记为a3

第三节 二维数组的创建与元素提取

  1. 二维数组(矩阵)的创建

(1)直接输入法
规则:
①矩阵元素必须在方括号内;
②同行元素之间用空格或逗号隔开;
③行与行之间用分号或回车符隔开;
④元素可以是数值、变量、表达式或函数;
⑤矩阵的维数不必预先定义。
示例:

a1=[1 2 3;4 5 6;7 8 9]
a2=[1,2,3;4,5,6;7,8,9]
a3=[1 2 3;
    4 5 6;
    7 8 9]

(2)利用MATLAB中的特殊矩阵函数构建新矩阵

含义函数
全1矩阵ones()
全0矩阵zeros()
(0,1)区间均匀分布的随机矩阵rand()
单位矩阵eye()
均值为0、方差为1的标准正态随机分布矩阵randn()
  1. 二维数组中元素的提取

(1)元素的提取
利用圆括号、逗号和行、列索引号。

例:

A=[1 2 3;4 5 6;7 8 9]
A(i,j) 提取第i行,第j列的元素

(2)一维数组和和子矩阵的获得
利用冒号和表达式获得

A(:,j)   % 提取第j列的所有元素
A(i,:)   % 提取第i行的所有元素
A(:,k:k+m)   % 提取第k~k+m列的所有元素
A(i:i+m,:)   % 提取第i~i+m行的所有元素
A(i:i+m,k:k+m)   % 提取第i~i+m行、k~k+m列的所有元素

实例演示

a=[1,2,3;4,5,6;7,8,9]
% 输入:
a1=a(:,2)
a2=a(2,:)
a3=a(:,1:2)
a4=a(1:2,:)
a5=a(1:2,1:2)
% 输出:
a1=[2;5;8]
a2=[4,5,6]
a3=[1,2;4,5;7,8]
a4=[1,2,3;4,5,6]

第四节 字符数组和空数组

  1. 字符数组
    主要用于可视化编程,例如界面设计和图形绘制。
    (1)字符变量的创建
    把待建字符放在单引号中。
    注意:单引号必须放在英文状态下输入。
    A = 'I am a Chinese!'
    (2)字符数组的拼接
    利用方括号和逗号进行两个及以上字符数组的直接拼接。
str1='Welcome to '
str2='Being'
str=[str1,str2]

(3)字符数组的显示
使用disp()
例:disp('HelloWorld')

  1. 空数组
  • 是为操作和表述需要专门设计的一种数组。用方括号“[]”表示;
  • 不要与全零数组混淆;
  • 唯一能正确判断一个数组是否为“空”的指令是isempty()

第五节 矩阵的算术运算

  1. 矩阵的基本算数运算
    加、减、乘、除(左除,右除)、乘方
    (1)矩阵的加、减运算
    运算符:A±B

注意:

  • 要求相加减的矩阵阶数相同。
  • 检查矩阵阶数的语句:
[n,m]=size(A)
l=length(A)

(2)矩阵的乘法运算
运算符:A*B
%要求A的列数与B的行数(内阶数)相等

(3)矩阵的除法运算
左除:A\B
右除:B/A

注意:左除时要求两矩阵的行数必须相等,右除时要求两矩阵的列数必须相等。

(4)矩阵的乘方运算
运算符:矩阵^幂次

  • 实例演示
A=[1,2;3,4]
B=[1,1;2,2]
Y1=A+B
Y2=A-B
Y3=A*B
Y4=A\B
Y5=B/A
Y6=A^2
  1. 矩阵的点(元素群)运算
    矩阵中对应位置元素进行相关运算。要求参加运算的矩阵必须是同阶的(行列数相等)
    运算符:在矩阵的基本运算符前加点“.”
    ①点乘:.*
    ②点除:.\ ./
    ③点乘方:.^

第六节 矩阵的关系运算和逻辑运算

  1. 矩阵的关系运算
  • 关系运算符:
符号含义
<小于
>大于
<=小于等于
>=大于等于
==等于
~=不等于
  • 运算结果:真(1),假(0)
  • 运算法则:
    (1)标量比较:直接比较数的大小。
    (2)矩阵比较:对应位置元素按照标量运算关系进行比较,最终结果为一个由0和1组成的、与原矩阵同阶数的矩阵。
    注:相同阶数的矩阵才能进行比较
  1. 矩阵的逻辑运算
  • 逻辑运算符:与(&),或(|),非(~)
    针对二进制数(0,1)的逻辑运算

  • 运算法则
    (1)“与”运算:两者均为1,则结果为1;否则为0。
    (2)“或”运算:两者只要有一个为1,则结果就为1;否则为0。
    (3)“非”运算:取反。如果原来为1,则进行“非”运算后为0;反之亦然。

  • 实例演示:

U=P|~P
all(P)
all(U)
any(P)
% all:全为真(按列计算)
% any:不全为假(按列计算)

第七节 矩阵元素的处理

  1. 矩阵元素的取整
    ①向下取整:floor()
    ②向上取整:ceil()
    ③四舍五入取整:round()
    ④截尾取整:fix()
    例:
A=[2.3,2.7;-2.3,-2.7]
A_f=floor(A)
A_c=ceil(A)
A_r=round(A)
A_x=fix(A)
  1. 矩阵元素的取模和取余
    mod(x,y) 取模
    rem(x,y) 取余
    均为取余函数,区别在于:当x和y的正负号相同时,两个函数的结果相同,均为x除以y的余数;当x和y的正负号不同时,rem函数结果的符号与x相同,而mod函数结果的符号与y相同。

第八节 矩阵的行列式、秩与迹及特征值分析

  1. 矩阵的行列式
    运算符:det()
    注意:用于求方阵的行列式值
  2. 矩阵的秩与迹

(1)矩阵的秩

  • 矩阵的秩是矩阵的列向量组(或行向量组)的任一极大线性无关组所含向量的个数
    运算符:rank()

(2)矩阵的迹

  • 矩阵的迹等于矩阵主对角线元素的总和。也等于矩阵特征值的总和。
    运算符:trace()
    注:要求矩阵是方阵
  1. 矩阵的特征值分析
    (1)E=eig(A)
    求矩阵A的全部特征值,并构成向量E
    (2)[V,D]=eig(A)
    求矩阵A的全部特征值,构成对角矩阵D;求A的特征向量构成列向量V

第九节 矩阵的逆与线性方程组求解

  1. 矩阵的逆
    (1)inv() 用于求满秩方阵的逆。
    (2)pinv() 用于求不是方阵或非满秩方阵的逆——伪逆。
    如果ABA=A,BAB=B,则称B为A的伪逆,或广义逆矩阵。
  2. 线性方程组求解
| x1-2x2+3x3=1
| 2x1+3x2+x3=2
| 3x1-x2-x3=4
AX=B  X=A^-1*B
X = inv(A)*B
X = inv(A)*B = A\B (矩阵左除)
A=[1,-2,3;2,3,1;3,-1,-1];
B=[1;2;4];
X = inv(A)*B
X1 = A\B
% 左除比inv更精确

第十节 矩阵的分解与变换

  1. 矩阵的分解

(1)三角分解(方阵):[l,u]=lu(a)

(2)正交分解:[q,r]=qr(a)
其中:

  • a(n,m)
  • q:n阶正交方阵
  • r:与a同阶的上三角矩阵

(3)奇异值分解:[u,s,v]=svd(a)
其中:

  • u:n阶正交方阵
  • s:n×m阶的对角阵,对角线元素为a的奇异值,长度为n、m的较小者
  • v:m阶正交方阵
  1. 矩阵的变换
    (1)矩阵的共轭转置:'
    (2)矩阵的共轭:conj
    (3)矩阵的转置:conj'
  • 复数矩阵的赋值
    ①对元素逐个复制:
    z=[1+2i,3+4i;5+6i,7+8i]
    ②对实部和虚部矩阵分别赋值:
    z=[1,3;5,7]+[2,4;6,8]*i
    注:只有数字和i的乘积可省略乘号
    (4)矩阵的行、列扩展
    a=[1,2,3;4,5,6;7,8,9]
  • 行扩展:
a(4,3)=6.5
a(5,:)=[5,4,3]

列扩展:

a(:,4)=[5;4;3;2;1]
a(:,4)=[5;4;3;2;1]

第三章 数据可视化

第一节 基本二维曲线绘制

  1. plot(y)
    y可以是向量、实数矩阵或复数向量。
    (1)y是向量:绘制以向量索引为横坐标、以向量元素值为纵坐标的图形。
    (2)y是实数矩阵:绘制y的列向量对其坐标索引的图形。
    (3)y是复数向量:plot(y)相当于plot(real(y), imag(y))
1:
y=5*(rand(1,10)-.5)
plot(y)2
y=[0 1 2;2 3 4;5 6 7]
plot(y)
  1. plot(x,y)
    x,y均可以是向量和矩阵。
    (1)x,y均是n维向量:
    绘制向量y对向量x的图形,x为横坐标,y为纵坐标。
    (2)x是n维向量,y是m×n或n×m阶矩阵:
    在同一图内绘制m条不同颜色的曲线,x为横坐标、纵坐标为y矩阵的m个n维分量。在同一图内绘制多条自变量相同的不同的曲线。
    (3)x,y均是m×n阶矩阵:
    在同一图内绘制n条不同颜色的曲线,以x对应列分量为横坐标、y对应列分量为纵坐标。

  2. plot(t,[y1;y2;…])
    注:y1,y2,…均以t为自变量,在同一坐标系中画出多幅图

  3. 接续

plot(t,y1)
hold on
plot(t,y2,'r')

注:画完y1,接在后面画y2

  1. plot(x1,y1,x2,y2,……xn,yn)
    用于在同一图内绘制横坐标
1:
x=0:0.1:10
y=sin(2*x)
plot(x,y)2:
x=0:0.1:10
y=[sin(x)+2;cos(x)+1]
plot(x,y)3:
x=0:0.1:10;
y1=sin(x)+2;
y2=cos(x)+1;
plot(x,[y1;y2])4:
x=0:0.1:10;
y1=sin(x)+2;
y2=cos(x)+1;
plot(x,y1)
hold on
plot(x,y2,'r')5:
t1=0:0.2:4*pi;
y1=exp(-0.1*t1).*sin(t1);
t2=0:0.2:2*pi;
y2=exp(-0.5*t2).*sin(5*t2+1);
plot(t1,y1,'+k',t2,y2,':r')

例1图:例1
例234图:例234
例5图:
例5

第二节 绘图辅助操作

  1. 颜色、标记和线型

(1)颜色:用不同的英文字母表示不同的颜色,多数与英文单词对应。

颜色名称颜色符号
蓝色b
绿色g
红色r
青色c
洋红m
黄色y
黑色k
白色w

(2)标记和线型

标记线型
.-(实线)
O:(点线)
×-.(点划线)
+–(虚线
*
标记名称标记符号
方形S
菱形D
向下三角形V
向上三角形^
向左三角形<
向右三角形>
五角星P
六角形h

(3)plot命令可设定的属性

  1. 坐标轴标注和范围设置

坐标轴的标注、范围、刻度以及宽高比

(1)坐标轴标注函数:xlabel、ylabel、zlabel
格式:xlabel('string')
string:标注所用的说明字符串
默认:xlabel(‘x’)

(2)坐标范围标注函数:axis
格式:axis([横轴范围 纵轴范围])

%例:
t=0:0.02:2*pi;
x=4*sin(t);
y=5*cos(t);
plot(x,y)
xlabel('指定范围')
axis([-4 4 -5 5])
  1. 标题和图例标注
    (1)标题是对所绘图形的说明。
    格式:title('string')
    string:标注所用的说明字符串
    (2)图例标注是为图形中的所有曲线进行标注。
    格式:legend('string1','string2',…)
    legend('location','location',…)
  • stringi:标注按绘制的先后顺序生成的曲线
  • legend:定义标注放置的位置

第三节 双纵坐标、多子图绘制

  1. 双纵坐标绘图

(1)plotyy(x1,y1,x2,y2)
两条曲线x1-y1、x2-y2分别以左右纵轴为纵坐标。

% 例:
x1=0:0.1:5;
y1=exp(-x1/3);
x2=0:0.1:5;
y2=sin(2*x2);
plotyy(x1,y1,x2,y2)
title('plotyy exam')

在这里插入图片描述

  1. 多子图绘制
    在一个图形窗绘制多条不同的曲线。
    subplot(m,n,p)
    将图形窗分为m×n个子窗口,在第p个子窗口中绘制图形。子图的编号顺序为从左到右,从上到下。p为子图编号。
% 示例
t=0:0.5:4*pi;
y=exp(-0.1*t).*sin(t);
subplot(2,2,1),stem(t,y)
title('stem(t,y)')
subplot(2,2,2),stairs(t,y)
title('stairs(t,y)')
subplot(2,2,3),bar(t,y)
title('bar(t,y)'),pause(1)
subplot(2,2,4),fill(t,y,'r')
title("fill(t,y,'r')")

在这里插入图片描述

  1. 多图绘制
    生成多个图形窗口
    figure()
% 示例
t1=0:0.2:4*pi;
y1=exp(-0.1*t1).*sin(t1);
t2=0:0.1:2*pi;
y2=exp(-0.5*t2).*sin(5*t2+1);
figure(1)
plot(t1,y1,'*c')
figure(2)
plot(t2,y2,':r')

在这里插入图片描述

第四节 图形的直接编辑

  1. 主要内容
    (1)颜色。标记和线型
    (2)坐标轴标注和范围设置
    (3)标题和图例标注
    (4)保存

  2. 操作
    右键图形,弹出属性修改界面, 在内改变线型、线宽、字体等属性。

第五节 三维数据可视化

  1. 三维曲线绘制
    plot3(x,y,z)
% 示例
z=0:0.1:4*pi
x=cos(z)
y=sin(z)
plot3(x,y,z)
grid
% grid:图上加坐标网格

在这里插入图片描述

  1. 三维曲面绘制
    mesh() 网格状曲面
    surf() 给网格填充颜色的曲面
% 特殊图形的绘制
axis equal;
M=moviein(16);
for j=1:16
    plot(fft(eye(j+16)));
    M(:,j)=getframe;
end
movie(M,30)

在这里插入图片描述

第四章 程序设计

第一节 M文件

  1. M文件的创建、保存、打开和运行

(1)M文件的创建
在文本编辑窗“editor”
①菜单方式:File→New→Script
②快捷键方式:单击快捷工具栏上的对应图标。
③命令方式:在命令窗口键入“edit文件名”

(2)M文件的保存
①菜单方式:File→Save
②快捷键
③运行+保存:运行前若文件没有保存,系统会提示保存后再运行
④另存为:File→Save As
说明:M文件的后缀是.m

(3)M文件的打开
①菜单方式:File→Open
②快捷键方式
③命令方式:命令窗键入“edit XX”

(4)M文件的运行
①在editor环境下:单击“run”
②快捷键:F5

  1. 主程序文件和函数文件

(1)主程序文件:用户编制的程序

  • 主程序的特点
    ①用clear,clear all, close all开头
    ②注释行:以%开头
    ③程序主体,定义全局变量(global 变量名1……)

(2)函数文件:子程序文件。必须以函数定义为第一行内容。
函数文件必须以function开始,且必须有函数名;可以有输入、输出变量;除用global说明外,否则变量均为局部变量。
函数文件可以是MATLAB本身提供的,也可以是用户编制的程序。

第二节 条件控制结构

  1. if条件控制结构

(1)单分支结构

if 表达式
    语句组 A
end

(2)双分支结构

if 表达式
        语句组 A
    else 
        语句组 B
end

(3)多分支结构

if 表达式
        语句组 A
    elseif 表达式1
        语句组 B
    elseif 表达式2
        语句组 C
    ……
    else
        语句组n
end
  1. switch-case条件控制结构

可使程序在不同的情况下进行相应的操作

switch 表达式(标量或字符串)
    case1
        语句组 A
    case2
        语句组 B
    ……
    otherwise
        语句组 N
end

3*. 示例演示:判断数的奇偶性
(1)if-else语句

n=input('n=')
if rem(n,2)==0
    A='even'
    else
    A='odd'
end

(2)switch-case语句

clear all
n=input('n=')
switch rem(n,2)
    case 1
        A='odd'
    case 0
        A='even'
    otherwise
        A='empty'
end    

第三节 循环控制结构

  1. for循环结构
    主要用于以固定取值或循环次数的重复执行过程。
for 循环变量=表达式
    语句组
end

例:

for k=初值:增量:终值
    语句组
end
  1. while循环结构
    主要在不能或不易确定循环次数的情况下使用
while 表达式
    语句组
end
  1. 实例演示

(1)计算1到999之间的所有偶数和

  • for循环
s1=0
for m=2:2:999
    s1=s1+m
end
s1
  • s2=sum(2:2:999)

(2)求MATLAB中的最大实数。

x=1
while x~=inf
    x1=x
    x=2*x
end
x1

第四节 其它常用语句

  1. pause语句
    实现暂停功能
  • pause
    暂停至单击鼠标左键或按键盘的任意键后,继续执行后面的语句。
  • pause(时间)
    暂停到设定时间(秒)后,继续执行后面的语句。
  1. input语句
    是一种人机交互命令
    input('提示文字')
    程序执行到此时暂停,在命令窗显示引号中的字符串,要求用户通过键盘键入数据。

第五节 M文件的注释和程序调试

  1. M文件的注释
    (1)注释语句以百分号“%”开头,语句体颜色自动变为绿色。注释语句不是运行语句。
    (2)程序中如果有不想让其运行的语句,则在其前面加“%”,这样可以让程序执行到此跳过该语句继续执行后面的语句。

  2. 程序的调试
    MATLAB自动检查和显示程序错误的能力很强,易于调试。
    如果程序有错误,则程序停止运行,并将错误显示在命令窗口,而且提示错误所在的位置以及错误原因。

第五章 数值计算

第一节 数据分析函数库

  1. 基本的数据分析
    基本的数据处理分析功能按列进行。
函数功能
max()求各列最大值
min()求各列最小值
mean()求各列平均值
sum()求各列元素和
std()求各列标准差
  1. 用于随机数据分析的函数
    (1)rand(m,n)
    产生在0~1之间均匀分布的m行、n列随机数矩阵。
    (2)randn(m,n)
    产生正态分布的m行、n列随机数矩阵,均值为0,标准差为1。

  2. 用于相关分析的函数
    (1)corrcoef(x,y)
    计算两个向量x,y的相关系数
    (2)cov(x,y)
    计算x,y的协方差矩阵

第二节 多项式函数库

  1. 多项式的四则运算

(1)多项式的表示
用各幂次前的系数向量表示,从高到低。
在这里插入图片描述
a=[a(1),a(2),…,a(n),a(n+1)]
注意:零系数不能省去。

(2)多项式的四则运算
①多项式相加:a+b
注意:长度必须相同,短的在前面以"0"补齐
②多项式相乘:conv(a,b)
③多项式相除:[q,r]=deconv(a,b)
q:商式
r:余子式
注意:a是分子,b是分母,分母系数向量的第一位不能为零。

  1. 多项式求导、求根和求值
    (1)多项式求导:ployder(a)
    (2)多项式求根:roots(a)
    (3)由根求多项式系数:ploy(a)
    (4)多项式求值:ployval(a,xv)
    给多项式a中的自变量x赋予值xv

  2. 多项式拟合

  • 拟合:根据一组已知的数据找到其数学表达式
  • 拟合方法:使方差最小,应用最小二乘法。
    p=polyfit(x,y,n)
    x,y是已知的N个数据点坐标向量,n是拟合的多项式次数,p是求出的多项式系数向量

第三节 非线性函数分析及函数的数值积分

  1. 非线性函数分析
    (1)绘制函数曲线
    fplot('函数名',[初值,终值])
    (2)求函数极值
    fmin('函数名',初值,终值)
    (3)求函数零点
    fzero('函数点',初猜值)

  2. 函数的数值积分
    (1)定积分子程序
    quad('函数名',初值,终值)

第四节 线性微分方程的解

  1. 线性微分方程的解——拉普拉斯变换法
    首先利用拉普拉斯变换将线性常微分方程变换为代数方程,响应的表达式为s的有理分式。
    即:Y(s)=B(s)/A(s)
    (1)部分分式展开(假设分母比分子阶数高)
    [r,p,k]=residue(b,a)
    示例2
    (2)求反变换
    y(t)=r(1)*exp(p(1)*t)+r(2)*exp(p(2)*t)+……
    在这里插入图片描述


——
————
————————
理想是指路明灯
学至此,也颇有收获

  • 18
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扶光°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值