说明:用matlab语言编写的程序,称为M文件。M文件分为脚本文件和函数文件,扩展名均为.m。
注释:%注释文本
不等号:~=
它是一个易用的一元函数绘图函数 。特别是在绘制含有符号变量的函数的图像时,ezplot要比plot更方便。因为plot绘制图形时要指定自变量的范围,而ezplot无需数据准备,直接绘出图形。
Inf:∞无穷大
Nan:not a number不是数
符号说明
逗号:用来将矩阵中的行元素分开。(可用空格代替)
分号:用来将矩阵中的行分开。(可用回车键代替)
中括号[]:界定数组的首与尾。
小括号():表示指定的元胞。
大括号{}:表示元胞的内容。
冒号:相当于文字中的省略号。
数组
行数组:A=[1,2,3,4]
列数组:A=[1;2;3;4]
矩阵:A=[1,2,3;4,5,6;7,8,9]
创建数组
zeros(m) m阶全零方阵
zeros(m,n) m×n阶全零方阵
ones(m) m阶全1方阵
ones(m,n) m×n阶全1方阵
eye(m) m阶单位阵
定步长 生成法: x=a:t:b,t是步长,省略是为1。
定数 线性采样法: x=linspace(a,b,n),a与b是数组的第一个和最后一个元素,n是采样的总点数。
注意:1、生成的都是行向量
2、linspace(a,b,n) 与 a:(b-a)/(n-1):b 等价
选取数组
A(:,j)表示取A矩阵的第j列全部元素
A(i,:)表示取A矩阵的第i行全部元素
A(i,j)表示取A矩阵第i行、第j列的元素
A(i:i+m,:)表示取A矩阵第i~i+m行的全部元素
A(:,j:j+m)表示取A矩阵第j~j+m列的全部元素
A(i:i+m,j:j+n)表示取A矩阵第i~i+m行,第j~j+n列的所有元素
A(:)将矩阵A每一列元素堆叠起来,成为一个列向量
删除矩阵
空矩阵[] 赋值给所选取数组
下标(subscript)与序号(index)
A是一个m*n的矩阵,A(i,j)对应的序号为(j-1)*m+i
获取数组的行列数 [m,n]=size(A)
获取数组行数或列数中最大的那一个(通常获取一维数组的长度) length(A)
下标转换序号函数 sub2ind(size(A),i,j)
序号转换下标函数 [i,j]=ind2sub(size(A),(j-1)*m+i)
注意:矩阵元素按列编排序号
随机数
rand:产生均值为0.5、幅度在0~1之间的伪随机数
rand(n):生成0到1之间的n阶随机数方阵
rand(m,n):生成0到1之间的m×n的随机数矩阵
四维运算
矩阵与矩阵:
A + B:矩阵A和矩阵B对应位置相加
A* B:A的第一行乘以B的第一列,要求A的行数等于B的列数
A .* B:矩阵对应位置的元素相乘
A / B:约等于 A * inv(B)
A ./ B:矩阵对应位置的元素相除
矩阵与数值:
A + a:矩阵A的每个位置都加2
A / 2 和 A ./ 2的结果是相同的,都是每个位置除以2
A .^ 2 : 矩阵A的每个位置元素都2次方
A ^ 2:A * A 是两个矩阵相乘
A':矩阵的转置
求矩阵中所有元素的均值和方差
A是一个m*n的矩阵
均值:sum(A(:))/(m*n)
方差:var(A(:))
求解方程组
[v1,v2,…,vn]=solve(s1,s2,…,sn):由表达式s1,s2,…,sn组成的方程组,求解变量v1,v2,…,vn。
控制语句
1、if elseif else end 语句
2、switch case otherwise end 语句
3、while end 语句
4、for end 语句
程序运行前的三段式:
close all;关闭所有的figure
clear all;清理之前使用过的变量
clc;清除命令行窗口
二维图形
1、plot函数
plot(x,y, ‘颜色 线型 标记符号’,‘属性名’,‘属性值’)
这里将选项S=‘颜色 线型 标记符号’,‘属性名’,‘属性值’,为plot(x,y,S)
这里x,y可以是相同维度的数组,然后会一一对应坐标连成线,可以标记
plot(x1,y2,S1,……,xn,yn,Sn):在同一坐标中画n条线
颜色 | 线型 | 标记符号 |
---|---|---|
b蓝色 | -实线 | .点 |
g绿色 | --虚线 | o圆圈 |
r红色 | :点线 | *星号 |
c青色 | -.点画线 | x叉号 |
m品红色 | +加号 | |
y黄色 | s/d/p/h 正方形/菱形/五角星/六角星 | |
k黑色 | ^/v/</> 三角形 | |
w白色 |
属性名 | 含义 |
---|---|
LineWidth |
线宽(数值) |
MarkerSize | 标记点大小(数值) |
MarkerEdgeColor | 标记点边框颜色(颜色字符) |
MarkerFaceColor | 标记点填充颜色(颜色字符) |
注意:这里的颜色字符可以用RGB的矩阵表示,范围为[0,0,0]~[1,1,1]。 |
plot(A)
当A是一个实数行向量或者实数列向量时,以A中的元素下标为横坐标,元素值为纵坐标,绘制一条曲线
当A是一个m*n的实数矩阵时,以每一列中的元素行下标为横坐标,元素值为纵坐标,绘制n条曲线
当A是一个复数行向量或者复数列向量时,以A中的元素实部为横坐标,元素虚部为横坐标,绘制一条曲线
当A是一个m*n的复数矩阵时,以每一列中的元素实部为横坐标,元素虚部为横坐标,绘制n条曲线
2、subplot函数
subplot(m,n,p):将当前图形窗口分成m行乘以n列个绘图区,区号按行优先编号,且选定第p个区为当前活动区
3、fplot函数
fplot(filename,lims,选项)
4、ezplot函数
辅助操作
图形标注
title('图形标题'):一行标题显示
title({'图形标题1';'图形标题2';'图形标题3'}):多行标题显示
其中,\bf:加粗 \it:斜体 \rm:正体,它们都是对其后面的所有字符串起作用。
上述可以使用标准的ASCII字符外,还可以使用LaTex格式控制符。
受LaTex字符串控制的部分要加大括号{}括起来
上标:用^去引导,若需多个字符,则要用大括号{}括起来
下标:用_去引导,若需多个字符,则要用大括号{}括起来
title('图形标题','属性名','属性值')
属性名 | 含义 |
---|---|
Color | 图形标题文字颜色(颜色字符) |
FontSize | 图形标题文字字号(数值) |
注意:这里的颜色字符可以用RGB的矩阵表示,范围为[0,0,0]~[1,1,1]。 |
xlabel('x轴说明'):一行说明显示
xlabel({'x轴说明1';'x轴说明2';'x轴说明3'}):多行说明显示
xlabel('x轴说明','属性名','属性值')
ylabel('y轴说明'):一行说明显示
ylabel({'y轴说明1';'y轴说明2';'y轴说明3'}):多行说明显示
ylabel('y轴说明','属性名','属性值')
text(x,y,'图形说明'):在(x,y)坐标处添加一行图形说明
text(x,y,{'图形说明1';'图形说明2';'图形说明3'}):在(x,y)坐标处添加多行图形说明
text(x,y,'图形说明','属性名','属性值')
gtext('图形说明'):用鼠标在自定义处添加一行图形说明
gtext({'图形说明1';'图形说明2';'图形说明3'}):用鼠标在自定义处添加多行图形说明
gtext('图形说明','属性名','属性值')
legend('图例1','图例2','图例3'):用图例标注曲线
坐标控制
axis([xmin, xmax, ymin, ymax, zmin, zmax]):设置x,y,z轴的坐标范围
axis equal:纵、横坐标轴采用等长刻度
axis square:产生正方形坐标系(默认为矩形坐标系)
axis auto:使用默认设置
axis off:不显示坐标轴
axis on:显示坐标轴
grid on:显示网格线
grid off:不显示网格线
grid:用于在上述两种状态之间进行切换
box on:添加坐标系边框
box off:取消坐标系边框
box:用于在上述两种状态之间进行切换
hold on:保持原有图形(后续操作在该图形上进行)
hold off:刷新图形窗口
hold:用于在上述两种状态之间进行切换
函数
自定义函数方法
函数文件+调用命令文件:
函数文件基本结构+函数调用一般格式
函数文件基本结构:
function [ 输出参数 ] = 函数名( 输入参数 )
% 注释部分
函数体语句
end
注意:
1、第一行注释行包括大写的函数文件名和函数功能简要描述,供lookfor关键字查询和help在线帮助时使用
2、第一行注释行及之后连续的注释行包括输入/输出参数的含义,构成全部在线帮助文本
3、之后空一行再添加的注释行包括函数文件编写和修改信息,用于软件档案管理
例:
function [ s,p ] = fcircle( r )
%FCIRCLE 通过圆的半径计算圆的面积和周长
% r 圆的半径
% s 圆的面积
% p 圆的周长
% 2019年7月14日编
s = pi*r*r;
p = 2*pi*r;
end
函数调用一般格式:
[ 输出参数 ] = 函数名( 输入参数 )
例:
[ s,p ] = fcircle( r )
函数文件+子函数:
在自定义函数文件下可以定义多个子函数,但这子函数只能被主函数和主函数中的其他子函数调用
匿名函数:
直接通过@符号定义
匿名函数定义形式:
函数句柄=@(变量名)函数表达式
例:
f=@(x)x.^2
三维图
plot3(x,y,z):三维曲线图
mesh(x,y,z):三维网格图
surf(x,y,z):三维曲面图
来源:CSDN
作者:Master灬Yi
链接:https://blog.csdn.net/sinat_40382447/article/details/95060707