matlab 基础

旧街凉风 提交于 2020-02-07 21:12:43

说明:用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):三维曲面图

 

 

 

 

 

 

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!