matlab学习笔记

matlab笔记

上课期间自己整理的一系列matlab相关用法的笔记,自认为也并不非常有条理,但还是囤放在这里,供需要的人查阅、取用。


写在前面

  • help + 函数名:查找某函数的使用方法
  • look for + 关键字:不知道函数确切名称的时候可以查找
  • matlab代码的注释以%开头

变量

  1. 特殊常量

    · pi:圆周率
    · i或者j:虚数单位
    · inf:正无穷大
    · NaN:非数
    · 默认结果存储变量:ans

  2. 函数的命名第一个字符必须是英文字母,长度不能超过31个字符

  3. 数值变量的类型自动定义为双精度变量,但可以用format调整显示格式

  4. 在语句之后加分号则不显示运行结果

  5. save表示变量的存储,load表示变量的读取

  6. 变量的清除:

    · clear n;
    · clear n1 n2;
    · clear all;

  7. 变量的检查

    · who查看前面已经有的变量
    · whos查看前面已有变量的详细信息

  8. 一些运算符
    1)abs() 取绝对值
    2)asin(),acos() 表示arcsin,arccos
    3)两个取余函数 mod(m,n) 和rem (m,n)
    · m,n同号时,结果也同号
    · m,n异号时,mod的结果与n同号,rem的结果与m同号

矩阵

  1. 创建矩阵的特殊方法

    1)ones() 全1矩阵
    2)zeros() 全0矩阵
    3)eye() 单位矩阵
    4)rand() (0,1)区间均匀分布的随机矩阵
    5)randn() 均值为0、方差为1的标准正态随机分布矩阵
    6)备注:当括号内不填数字时,默认创建一行一列的矩阵,即一个数字;当括号内填一个数字n时,创建n*n的矩阵;当括号内填两个数字m,n时,创建m行n列的矩阵(不要弄反)。
    7)a = 初值:步长:终值 (方括号加不加结果相同)
    8)a = linspace(初值,终值,点数) 点数默认为100

  2. 矩阵的提取与拼接

    · 形式很灵活,可以横向拼接可以竖向拼接,分清楚分号和逗号(空格)即可

  3. 字符数组:

    · 即字符串,字符数组的拼接格式与矩阵横向拼接(方括号中加逗号)的格式相同
    · 字符串的显示:disp(string)

  4. 空数组表示为[],唯一判断一个数组是否为空的指令是isempty

  5. 矩阵的运算:需要注意的,左除,右除,点运算(加减没有点运算),取共轭转置为‘,取共轭为conj(),复数矩阵想要只取转置,只能叠加操作,如conj(A’)

  6. 复数矩阵可以一次性赋值,也可以实部和虚部分开赋值

  7. det() 计算矩阵的行列式

  8. 矩阵的
    1)inv() 用于求满秩矩阵的逆
    2)pinv() 用于求不是方阵/非满秩矩阵的伪逆(广义逆矩阵)
    3)inv(A)*B 与 A\B 结果相同

数据可视化

基础设置

  1. subplot()是对画布的基础设置,写个参数
    · 第一个参数表示每展示的图象数
    · 第二个参数表示每展示的图象数
    · 第三个参数表示下一个图象在页面中的绘制位置
    · 如果不对subplot进行重新设定,默认在上一次的设置位置进行覆盖
    · 使用clf语句清除效果(clear figure?)
  2. hold on表示在下次绘图时保留现有图像;hold off表示清除
  3. 一些标注
    · xlabel(‘xxx’); ylabel(‘xxx’); 标记轴
    · title(‘xxx’); 添加标题
    · legend(‘sin’,‘cos’) 表示图例,按照绘制的先后顺序做标注
    · 可以直接在图形上修改样式,注意选中箭头,然后右击
    · 也可以在图像的上方工具栏中插入x、y标签,标题和图例,右击可以改变字体样式
    · 可以在编辑中拷贝文档、修改坐标轴范围
  4. 默认绘图窗口是在figure1,如果继续绘制会在figure1上加以覆盖,若想新建一张图可以写语句figure(2),则打开第二个窗口,绘制第二张图象
  5. 图像的保存,格式为.fig
  6. grid语句表示增加坐标网格
  7. 关于axis:
    · axis表示坐标轴范围 axis([-1 1 -2 2]) 前两个数表示横轴范围,后两个数表示纵轴范围
    · axis square/将当前坐标系图形设置为方形,横轴及纵轴比例是1:1(刻度范围不一定一样,但是一定是方形的)
    · axis equal/将横轴纵轴的定标系数设成相同值(刻度是等长的,但也不一定是方形的)
    · axis tight/数据范围设为坐标范围

二维图

  1. plot()函数绘制二维图
    1)plot(m) 即参数为一个
    · m为向量,则图标横坐标为索引,纵坐标为值(无论横还是竖)
    · m为矩阵,则每画一条曲线,横坐标为每个元素的行号,纵坐标为元素值
    · m为复数,横坐标实部,纵坐标虚部

    2)plot(m,n)
    · m,n均是向量:将m作为横坐标,n作为纵坐标绘图
    · m是x维向量,n是x*x的数组:将m作为横坐标,n中的每一列作为一条线画图
    · m是x维向量,n是x*y或y*x的数组:将m作为横坐标,画y条线
    · m,n均为矩阵,且行数均为x列数均为y:绘制y条线,每条线上m的分量做横坐标,n的分量做纵坐标

    3)plot()最后一个参数可以是线条设定
    · 颜色:蓝色b,绿色g,黄色y,红色r,青色c,洋红m,黑色k,白色w
    · 标记和线型:.,o,+,*,-(实线),:(点线),-.(点画线),–(虚线),D(菱形),S(方形),P(五角星),h(六角星)
    · 可设置的属性:LineStyle、LineWidth、Color、MarkerType、MarkerSize、MarkerFaceColor、MarkerEdgeColor

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

三维图

  1. 绘制三维坐标图需要用到的函数meshgrid()
    1)原理:需要一个x坐标的矩阵和一个y坐标的矩阵,x坐标的矩阵每竖列均相同,从左到右等差排列;y坐标的矩阵每横行均相同,从上到下等差排列

    2)[m,n] = meshgrid(初值,步长,终值),赋值后m矩阵即为横坐标阵列,n矩阵为竖坐标阵列

    (试了试,m,n直接用向量绘制也没有问题,不知道区别在哪里)
    (噢,区别在于根据解析式生成z坐标是否方便)

  2. 绘制三维坐标图的函数
    1)surf()和mesh() 三维曲
    · surf(X,Y,Z) 以x中元素为每点的横坐标,y中元素为每点的纵坐标,z中元素为每点的高度,画图( 使用颜色显示曲面图的连接线和面)
    · mesh(X,Y,Z) 形状与surf函数所绘制的相同,只是仅以颜色标记连接定义点的线条的线框曲面图
    · surf(M)或mesh(M):以元素的列号为x坐标,行号为y坐标,元素值为z坐标,绘制三维坐标图,两函数所绘图形形状相同,区别同上
    · 这两个函数中的Z必须是矩阵

    2)plot3(x,y,z) 三维曲线
    · 不是坐标点阵,而是用相同长度的x,y,z向量中的每一个元素作为三个坐标,描点画线

二维极坐标

  1. polarplot(M, N)
    1)M表示弧度角,N表示半径值,输入必须是长度相等的向量或大小相等的矩阵
    2)如果输入为矩阵,polarplot 将绘制M的列对N的列的图
    3)也可以一个输入为向量,另一个为矩阵,但向量的长度必须与矩阵的一个维度相等
    4)第三个参数中可以设置曲线格式

  2. compass() 从原点出发的射线
    1)compass(u, v) u表示横坐标,v表示纵坐标,表明射线的方向,u,v可以是两个等长向量
    2)compass(Z) Z须为复数,实部表示横坐标,虚部表示纵坐标

程序设计

  1. 命令窗口的一些操作
    1)在命令窗口键入edit + 文件名,已有的文件则为打开,没有的文件则为创建
    2)在命令窗口直接键入文件名,为运行

  2. 主程序文件和函数文件
    1)主程序文件;以clear,clear all,close all开头
    2)函数文件:以function开始,且必须要有函数名;可以有输入输出参数;除了global说明外,其他均为局部变量(有默认函数也有自定义函数文件)

  3. 结构化程序设计(语法有点像python)
    1)条件控制结构
    · if:不需要括号,需要有end标志结束;可以有elseif嵌套(注意中间没有空格)
    · switch-case:不需要冒号;不需要break;最后的默认操作用otherwise;需要有end标志结束

    2)循环
    · for循环:for k=初值:步长:终值(结尾记得end)
    · while循环:基本同python,需要加end

    3)pause语句
    · pause 暂停到鼠标和键盘出现变化为止
    · pause(n) 暂停n秒钟

    4)input语句基本同python,不过返回的好像是数据

一些函数

  1. 基本数据分析(对矩阵的运算均以列为单位)
    1)max() 取矩阵的每列最大值,或者向量的最大值
    2)min()
    3)mean() 平均值
    4)sum()
    5)std() 标准差

  2. 随机数据分析
    1)and() 生成(0,1)之间的随机数矩阵,没有参数则输出一个数,一个参数则返回方阵,两个参数m,n则返回m行n列的矩阵
    2)randn() 生成均值为0、方差为1的标准正态随机分布矩阵,其余同上

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

  4. 关于多项式
    1)多项式的表示:用各幂次前的系数向量组成一个向量,从高到低,0不能省去
    2)多项式相加:在短的前面添0补齐,长度相等之后再相加
    3)多项式相乘:conv(a,b)
    4)多项式相除:[q,r] = deconv(a,b) a为分子,b为分母;q为商式,r为余子式
    5)多项式求导:polyder(a)
    6)多项式求根:roots(a)
    7)由根求多项式系数:poly(a)
    8)多项式求值:polyval(a, x) 将x代入多项式a中
    9)多项式拟合:p=polyfit(x,y,n) x,y是已知的N维向量,n为拟合曲线的次数,p为拟合后的多项式系数向量(维数为n+1)

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

林西河

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

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

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

打赏作者

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

抵扣说明:

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

余额充值