学习笔记 MATLAB入门01

本文内容基于MATLAB教程新手入门篇(上部分)(数学建模清风主讲),对其重要知识点进行了相关记录与总结。文章中若有哪些地方写的不对,欢迎大家评论指正!!

1 .matlab入门知识

  • matlab界面默认分为四大区域:菜单栏、当前文件夹、命令行窗口、工作区。
  • matlab文件名称必须以字母开头,并且仅包含字母、数字或下划线。
  • 创建matlab脚本 快捷键 Ctrl+N 
  • 保存脚本 Ctrl+S
  • 脚本文件和函数文件的后缀都是.m,需要区分
  • 实时脚本的文件后缀是.mlx(是一个非常好用的交互式文档)
  • 当运行脚本文件时出现“未定义函数或者变量”时,只需要修改当前文件夹为目标文件夹即可。
  • matlab有强大的帮助系统
    • 在matlab官网的帮助中心里搜索 https://ww2.mathworks.cn/help/index/html
    •  使用doc命令  在命令行窗口输入doc+查询的命令名称(推荐有网络连接条件下使用)
    • 使用help命令  在命令行窗口输入help+查询的命令名称(推荐有网络连接条件下使用)
    • 使用edit命令  在命令行窗口输入edit+查询的命令名称
  • 注释  %+注释信息  快捷键 添加注释 Ctrl+R  取消注释 Ctrl+T

2 .matlab的变量

  • matlab并不要求事先对所使用的变量进行声明,也不需要指定变量的类型,matlab会自动根据所赋予变量的值或对变量所进行的操作来识别变量的类型。
  • 变量命名规则:
    • 变量名必须以字母开头
    • 变量名区分字母大小写
    • 变量名不超过63个字符
    • 不能定义与matlab关键字同名的变量
  • matlab使用等号“=”给变量赋值,然后赋值的变量就会出现在工作区。
  • 若对已存在的变量再次赋值,那么新的赋值将会代替旧值。
  • matlab中的特殊变量
    • ans  系统默认的用于保存运算结果的变量名
    • pi  圆周率Π
    • inf/-inf  无穷大和负无穷大,注意1/0=inf
    • NaN  不定值或缺失值。如运算0/0或0*inf会返回NaN
    • i和j  复数中的虚数单位,如3+4i和3+4j表示同一个复数
    • eps  浮点相对精度。eps≈2.2204 x10的-16次方或写作2.2204e-16
  • 更改matlab的数值的显示格式
    • 临时更改:运行代码前在命令行窗口输入 format long g / format long G 将matlab的显示设为长格式
    • 永久更改:matlab菜单栏—主页—预设—命令行串口—将数值格式设置为long g
  • 清空命令行窗口 clc命令     
  • 清空工作区  clear
  • 在命令行不显示计算结果,可以在代码行的最后加上英文分号“;”,这样结果不会出现在命令行,但在工作区仍然可以查看计算结果。
  • 若要把两行代码也放在同一行,两行代码中间也用英文分号“;”隔开。
  • 常见的数学运算函数
    • abs (a)求绝对值或计算复数的模长
      abs(1.5) % 1.5
      abs(-1.5) % 1.5
      abs(3+4i) % 5
    • floor (a)朝负无穷大四舍五入
      floor(1.1) % 1
      floor(1.9) % 1
      floor(-1.9) %-2
      floor(-1.1) % -2
    • fix (a)朝零四舍五入
      fix(1.1) % 1
      fix(1.9) % 1
      fix(-1.9) %-1
      fix(-1.1) % -1
    • ceil (a)朝正无穷大四舍五入
      ceil(1.1) % 2
      ceil(1.9) % 2
      ceil(-1.9) %-1
      ceil(-1.1) % -1
      
    • round 真正意义上的四舍五入函数
      • round(a)只有一个参数时 a小数≠0.5,正常的四舍五入,a小数=0.5,朝着偏离零的方向调整。
      •  round(X,N)有两个参数时
        • N>0,四舍五入到小数点右侧的第N位数。
        • N=0,四舍五入到最接近的整数
        • N<0,四舍五入到小数点左侧的第N位数。
  • %只有一个输入参数的用法
    round(1.1) % 1
    round(1.9) % 2
    round(-1.9) %-2
    round(-1.1) % -1
    round(1.5) % 2
    round(-1.5) %-2
    %有两个输入参数的用法
    round(3.14159,1) % 3.1
    round(3.14159,3) % 3.142
    round(3.14159,0) % 3
    round(12345.6,-1) % 12350
    round(12345.6,-2) % 12300
    round(12345.6,-3) % 12000
  • mod(a,m)计算a除以m后的余数        
  • mod(11,3) % 2
    mod(9.3) % 0
  • sqrt(a)计算a的平方根
    sqrt(9) % 3
    format long g %计算结果显示为长格式
    sqrt(2) %1.414213562373095
    sqrt(-4) % 2i
  • exp(a)计算以自然常数e为底的指数
    exp(1) %2.7183
    exp(2) %7.3891
    exp(3) %2.2026e+04
  • log(x)计算以自然常数e为底的对数
    log(2) % 0.6931
    log(3) % 1.0986
    log(exp(10)) % 10
  • log2(a)/log10(a)计算以2和10为底的对数
    log2(4) %2
    log2(1024) %10
    log10(100) %2
  • 计算正弦、余弦、正切的函数
    • 以弧度为单位sin,cos,tan
    • 以角度为单位sind,cosd,tand
  • 计算反正弦、反余弦和反正切函数,asin,acos,atan,以弧度为单位。
  • 易错点
    • 计算时乘号不能省略。如sin(2Π)要在matlab中输入sin(2*pi) 
    • 在对变量命名时,不要将变量命名为函数的名称,否则会导致调用函数时出错

3 .matlab的向量

(1)向量创建的办法

  • 直接输入法
    • 向量元素用英文中括号[ ] 括起来,元素之间用空格、逗号、分号或按回车键分隔,就可以创建对应的向量。
      • 若元素之间用空格、逗号分隔,则创建的是行向量。如a=[1 3 5],a=[1,3,5]
      • 若用分号、回车键分隔,则创建的是列向量。如a=[1;3;5]
  • 冒号法(最常用)
    • 用 A:step:B 创建一个行向量
      • A是起始值,step每次递增或递减的步长,B终止值(不一定刚好停在这)
      • 若step是1,可以直接简写为A:B
1:2:9    %[1 3 5 7 9]
1:2:8    %[1 3 5 7] 再加2就到9了,大于8,所以到7就停止了
2:3:18    %[2 5 8 11 14 17]
0:0.1:1    %[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1]
0:0.01:1    %[0 0.01 0.02 0.03 0.04 0.05.....0.99 1]
1:1:100或者1:100    %[1 2 3 4.....99 100]
1:10:3    %1,1+10=11>3所以返回1
5:2:1    %空的1X0double向量。若A>B,且step>0,则会返回空向量
10:-1:6    %[10 9 8 7 6] step可以<0
10:-2:5    %[10 8 6]
10:-100:5    %10
10:-10:50    %空的1X0double向量。若A<B,且step<0,则会返回空向量
1:0:2    %空的1X0double向量。若step=0,则返回空的向量。
  • 在matlab中,我们可以直接使用命令[ ]创建空向量。

(2)利用matlab函数创建向量

  • linspace(a,b)创建一个行向量,向量中的第一个元素为a,最后一个元素为b,形成总数为100个元素的线性间隔向量。
  • linspace(a,b,n) 创建一个行向量,向量中的第一个元素为a,最后一个元素为b,形成总数为n个元素的线性间隔向量。
  • linspace函数与冒号法创建向量的区别
    • linspace不需要指定步长,matlab会根据给定的元素个数n自动计算步长;冒号法a:step:b需要指定步长。
    • linspace生成的向量的最后一个元素一定是b;冒号法a:step:b生成的向量的最后一个元素不一定是b。
    • 循环语句中,冒号法使用的频率较高;而绘制函数图形时,使用linspace得到的x轴的范围要比冒号法稍微准确一点。
      linspace(1,100,10)    %[1 12 23 34 45 56 67 78 89 100]从1到100的等差数列,一共有10个元素
      linspace(1,99,10)     %[1 11.8889 22.7778...88.1111 99]从1到99的等差数列,一共有10个元素,matlab会自动计算等差数列的步长
      linspace(0,2*pi,10)     %[0 0.69813 1.3963 ...5.5851 6.2832]从0到2Π的等差数列,中间的乘号不能忽略
      linspace(1,10)    %[1 1.0909 1.1818 1.2727...9.9091 10]没有输入第三个参数n,默认为100个
      linspace(100,1,10)    %[100 89 78 67 56 45 34 23 12 1]若a>b,则步长是负数
      
  • logspace(a,b)创建一个行向量,向量中的第一个元素为10的a次方,最后一个元素为10的b次方,形成总数为50个元素的等比数列向量。
  • logspace(a,b,n)创建一个行向量,向量中的第一个元素为10的a次方,最后一个元素为10的b次方,形成总数为n个元素的等比数列向量。
logspace(1,2,10)    %[10 12.915 16.681 21.544 ...77.426 100]从10到100,10个元素组成的等比数列
logspace(2,1,5)    %[100 56.234 31.623 17.783 10]从100到10,5个元素组成的等比数列
logspace(log10(2),log10(1024),10)    %[2 4 8 16 32 64 128 256 512 1024]从2到1024,10个元素组成的等比数列

(3)向量元素的引用

  • matlab中向量只有一个维度,可以使用length函数或numel函数来计算向量中包含的元素个数。
  • 在matlab中,向量的索引是从1开始的。
  • 单个元素的引用
    • a(ind),ind就是提取的对应元素的索引。(创建向量用中括号,提取元素就小括号)
    • 索引的元素需小于等于向量中元素的个数,否则会出现“索引超出数组元素的数目”的报错
    • ind必须为正整数,不能为0、负数、小数,否则会出现“数组索引必须为正整数或逻辑值”的报错
  • 多个元素的引用
  • a(ind),ind就是提取的对应元素的索引的向量。
    • 提取奇数位置的元素ind=[1 3 5 7 9]  a(ind)等价于 ind(1:2:9) a(ind) 等价于a(1:2:9)
    • 对于同一个位置的元素,也可以多次提取。eg.ind[1 2 2 3 3 3] a(ind),也可以写作a(1 2 2 3 3 3)
  • 使用end索引
    • 在不知道向量中元素个数的时候,可以用end来代替向量的最后一个索引。
    • eg.要访问a中第五个至最后一个元素,可以直接写作a(5:end);要访问a中第五个至倒数第三个元素,可以直接写作a(5:end-2)
    • 易错点:若已经使用了end,不能将要提取元素的索引赋值给ind。如,要访问a中第五个至最后一个元素,若令ind=5:end,matlab会报错。因此只能在a()中用end来代替数组的最后一个索引。

(4)向量元素的修改和删除

  • 用等号赋值的方法对引用位置的元素进行修改和删除
    %对向量元素的修改
    a=[2 4 8 16 32 64 128 256 512 1024]
    a(1)=4    %第一个元素改为4,a=[4 4 8 16 32 64 128 256 512 1024]
    a([1,3])=[50 60]    %第一个元素改为50,第三个元素改为60,a=[50 4 60 16 32 64 128 256 512 1024]
    a(1:3)=[5 6]    %matlab报错,因为赋值时,等号左右两边的元素个数应该相同。
    a(2:4)=100    %第二至四号位置的元素改为了100,a=[2 100 100 100 100 64 128 256 512 1024]
    a(13)=88    %若赋值元素的索引超过向量的最大索引,则matlab会用自动拓展向量大小,并且用0赋值,a=[2 4 8 16 32 64 128 256 512 1024 0 0 88]
    
    %对向量元素的修改
    %将等号右边变为空向量[],表示删除对应位置的元素。
    a(1)=[]    %删除第一个元素,a=[4 8 16 32 64 128 256 512 1024]
    a(end-1:end)=[]    %删除a的最后两个元素a=[2 4 8 16 32 64 128 256]

文章中若有哪些地方写的不对,欢迎大家评论指正!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值