MATLAB学习笔记(一)上:MATLAB基础知识

这篇教程介绍了MATLAB的基本使用,包括系统环境的设置,如命令行窗口、当前文件夹和工作区的操作;数值数据类型,如整型、浮点型和复数型的处理;常用数学函数的调用;以及变量的赋值和管理。此外,还讲解了矩阵的创建、冒号表达式和结构矩阵的概念。内容深入浅出,适合初学者掌握MATLAB的基础操作。

笔记配套课程:科学计算与MATLAB语言_中国大学MOOC(慕课) (icourse163.org)

PART ONE:MATLAB系统环境
1.命令行窗口中,如果一条命令很长,我们可以分成两行来输入,在第一个命令行之后,加上三个小数点...并按下回车,然后在下一个物理行继续输入命令的其他部分,这三个小数点称为续行符,续行符的作用就是可以把下面的物理行看作是本行的逻辑继续
2.当前文件夹是指MATLAB运行时的工作文件夹,为了方便管理文件,用户可以将自己的文件夹设置成当前文件夹,这样用户的操作都将在当前文件夹中进行,最简洁的设置当前文件夹的方式是在当前文件夹工具栏或当前文件夹窗口中选择某文件夹为当前文件夹,也可以使用cd命令
3.工作区是MATLAB用于存储各种变量和结果的内存空间,工作区窗口可用于变量的显示和操作,而且在工作区窗口还可以对变量进行编辑保存和删除等操作
4.当用户在命令行窗口输入一条命令后,MATLAB将按照一定顺序依次寻找相关的命令对象,常用的命令对象包括变量名,内部函数名,程序文件名等,MATLAB的搜索顺序是首先检查这个命令对象是不是一个变量,然后检查这个命令对象是不是一个内部函数,再检查这个命令对象是否是程序文件,而程序文件的搜索顺序是首先在当前文件夹中搜索,然后再在文件搜索路径中的文件夹中搜索
    >>clear  %清除工作区的全部变量
    >>x=sin(1) %调用sin函数,求1弧度的正弦值
    x = 
        0.8415
    >>sin=[1,2,3,4,5] %建立一个与正弦函数同名的sin变量,它的值是包含5个元素的向量
    sin = 
        1 2 3 4 5
    >>x=sin(1) %把sin(1)的值赋给x,这个命令所引用的是sin变量的第一个元素
    x = 
        1
    当然了,如果在工作区窗口删掉定义的sin变量,那么再用sin就变成内部函数了
5.设置文件搜索路劲:
    (1)用path命令,比如
        >>path(path,'e:\work')
    (2)用对话框设置文件搜索路径
        主页->设置路径


PART TWO:MATLAB数值数据
1.MATLAB数值数据是最基本的一种数据类型,分为整型,浮点型和复数型
    (1)整型
        无符号整数(无符号8,16,32,64位整数),带符号整数(带符号8,16,32,64位整数)
        数据类型转换函数可以实现数据类型的转换,如uint8函数将数值数据转换为无符号8位整数,int8函数将数值数据转换为带符号8位整数
            >>x=int8(129)  %希望把129转换为带符号的8位整型
            x = 
                127  %带符号8位整型数据的最大值是127,所以转换时只转换成最大值127
            >>x=unit8(129)
            x = 
                129
    (2)浮点型
        分为单精度型和双精度型,单精度型实数在内存中占用4个字节,双精度型实数在内存中占用8个字节,MATLAB中数值数据默认是双精度型
        可以使用single函数将其他类型的数据转换为单精度型,使用double函数将其他类型的数据转换为双精度型
            >>class(4)  %调用class函数,得到4的数据类型
            ans =
            double  
            >>class(single(4))
            ans =
            single
    (3)复型
        复型数据包括实部和虚部两个部分,实部和虚部默认为双精度型,虚数单位用i或j来表示
        对于复型数据,我们可以使用real函数求复数的实部,imag函数求复数的虚部
2.MATLAB中可以用format命令来设置数值数据的输出格式,format命令的格式:format 格式符
            >>format long  %将输出格式设为了long格式
            >>50/3
            ans =
                16.666666666666668
            >>format  %输入不带格式符的format命令,回到默认输出格式,也就是short格式
            >>50/3
            ans =
                16.6667
  注意format命令只影响数据的输出格式,而不影响数据的计算和存储
3.常用的数学函数
    (1)函数的调用格式为:函数名(函数自变量的值)
        函数的自变量规定为矩阵变量,当然也可以是标量,标量本身是矩阵的一种特例。函数在运算时是将函数逐项作用于矩阵的每个元素上,所以最后运算的结果就是一个与自变量同型的矩阵
            >>A=[4,2;3,6] %创建了一个矩阵A,A是一个两行两列的矩阵
            A = 
                4    2
                3    6
            >>B=exp(A)  %求exp函数求自然指数
            B = 
                54.5982    7.3891
                20.0855    403.4288
    (2)常见函数的应用
        三角函数有以弧度为单位的函数和以角度为单位的函数,如果是以角度为单位的函数就在函数名后面加“d”,以示区别
            >>sin(pi/2)
            ans = 
                1
            >>sind(90)
            ans = 
                1
        abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值
            >>abs(-4)
            ans = 
                4
            >>abs(3+4i)
            ans = 
                5
            >>abs('a')
            ans = 
                97
        用于取整的函数有fix、floor、ceil、round
        round函数按照四舍五入的规则取整
        ceil有天花板的意思,ceil函数是向上取整,取大于等于这个数的第一个整数
        floor有地板的意思,floor函数是向下取整,取小于等于这个数的第一个整数
        fix有固定的意思,fix函数是固定取靠近0的那个整数,即舍去小数取整
        实例1:求一个三位数的个位十位百位数字:
            >>m=345;
            >>m1=rem(m,10) %rem()为取余函数,求345除以10的余数赋m1
            m1 = 
                5
            >>m2=rem(fix(m/10),10)
            m2 = 
                4
            >>m3=fix(m/100)
            m3 =
                3
        实例2:求[1,100]区间的所有素数
            MATLAB提供了一个判断n是否为素数的函数isprime(n),当n是素数的时候返回1,否则返回0
            >>x=1:100;  %生成1到100区间内全部整数组成的向量x
            >>k=isprime(x);  %调用isprime函数生成k向量
            >>k1=find(k);  %调用find函数生成k1向量,k1向量中的元素为k向量中非0元素的序号
            >>p=x(k1)  %输出x中的全部素数
            p = 
                1至15列
                    2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
                16至25列
                    53 59 61 67 71 73 79 83 89 97


PART THREE:变量及其操作
1.变量本质是内存单元的一个抽象,变量一般都有一个名字,通过变量名就可以访问内存单元,MATLAB中,变量名以字母开头,后接字母数字或下划线的字符序列,最多63个字符,注意MATLAB区分变量字母的大小写
2.赋值语句的两种格式
    (1)变量=表达式
    (2)表达式(这种方法将表达式的值赋给MATLAB的预定义变量ans)
  变量结果会在命令行窗口显示出来,如果在赋值语句的最后加分号,那么MATLAB仅仅执行赋值操作,不会再显示运算后变量的结果
    >>x=sqrt(7)-2i;  %将根号7减2i赋给变量x,sqrt()为求平方根的函数
    >>y=exp(pi/2);  %将e的二分之pi次方赋给变量y,exp()为自然指数函数
3.预定义变量是由系统本身定义的变量
    ans是默认赋值变量,i和j代表虚数单位,pi代表圆周率,NaN代表非数(如果在绘图的时候,如果想裁掉其中一部分,那么只要把要裁掉的部分的坐标数据设为NaN就可以了)
4.变量的管理
    (1)内存变量的删除与修改
              可以在工作区窗口中完成    
              who命令:显示出驻留变量的名称
              whos命令:在给出变量名的同时还会给出他们的大小,所占字节数及数据类型等信息

    (2)内存变量文件:用于保存MATLAB工作区变量的文件叫做内存变量文件,其扩展名为.mat,也叫MAT文件
              save命令:创建内存变量文件
              load命令:装入内存变量文件
              假定变量a和x在MATLAB工作空间中:
                     >>save mydata a x  %把变量a和x保存在mydata.mat文件中
              假如下次进入MATLAB中,需要使用变量a和x,我们可以把mydata.mat文件装入工作空间:
                     >>load mydata


PART FOUR:MATLAB矩阵的表示
1.矩阵的建立
    (1)利用直接输入法建立矩阵:将矩阵的元素用中括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用逗号或空格分隔,不同行的元素之间用分号分隔
    (2)利用已建好的矩阵建立更大的矩阵:一个大矩阵可以由已经建立好的小矩阵拼接而成
        >>A=[1,2,3;4,5,6;7,8,9];
        >>B=[-1,-2,-3;-4,-5,-6;-7,-8,-9];
        >>C=[A,B;B,A]
        C = 
            1 2 3 -1 -2 -3
            4 5 6 -4 -5 -6
            7 8 9 -7 -8 -9
            -1 -2 -3 1 2 3
            -4 -5 -6 4 5 6
            -7 -8 -9 7 8 9
        >>%其实就是矩阵的分块
    (3)可以用实部矩阵和虚部矩阵构成复数矩阵
        >>B=[1,2,3;4,5,6];
        >>C=[6,7,8;9,10,11];
        >>A=B+i*C
        A =
            1.0000+6.0000i          2.0000+7i          3.0000+8.0000i
            4.0000+9.0000i    5.0000+10.0000i     6.0000+11.0000i        
        >>%其实就是线性代数基础
2.冒号表达式:在MATLAB中可以利用冒号表达式产生行向量
    (1)格式:e1:e2:e3  其中e1为初始值,e2为步长,e3为终止值,这样,冒号表达式就产生了一个由e1开始,到e3结束,以步长e2为行增量的行向量
        >>t=0:1:5
        t =
            0 1 2 3 4 5
    (2)注意:如果省略步长e2,则步长为1
    (3)MATLAB中还可以用linsapce()函数产生行向量,调用格式为linspace(a,b,n),其中a是生成向量的第一个元素,b是生成向量的最后一个元素,n是元素总数,当n省略时,自动产生100个元素
3.结构矩阵和单元矩阵
    (1)结构数据类型可以把一组数据类型不同,而逻辑上相关的数据组成一个有机的整体,其中每个数据就构成了这个结构数据的一个成员,由结构数据构成的矩阵就是结构矩阵,结构矩阵里的每个元素就是结构数据类型
             建立格式为:结构矩阵元素.成员名=表达式 ,就是给结构矩阵中每个元素的每个成员分别赋值
             例如建立含有3个元素的结构矩阵a,在矩阵a中每个元素都是结构数据,而每个元素包含有3个成员x1,x2,x3,并且这三个成员是由不同的数据类型组成的:
            >>a(1).x1=10; a(1).x2='liu'; a(1).x3=[11,21;34,78];
            >>a(2).x1=12; a(2).x2='wang'; a(2).x3=[34,191;27,578];
            >>a(3).x1=14; a(3).x2='cai'; a(3).x3=[13,890;67,231];
            >>%建议实际的调试,并在工作区窗口选中变量打开所选内容,便于对这块知识点的理解
    (2)单元矩阵数据类型也是把不同类型的数据放在一个变量中,单元矩阵的各个元素就是不同类型的数据,每个元素直接就是由不同类型的数据组成的
             建立单元矩阵和一般矩阵相似,直接输入就可以了,只是单元矩阵元素用大括号括起来
             下建立一个三行三列的矩阵:
                    >>b={10,'liu',[11,21;34,78];12,'wang',[34,191;27,578];14,'cai',[13,890;67,231]}
                    b = 
                        [10]        'liu'              [矩阵]
                        [12]      'wang'           [矩阵]
                        [14]        'cai'             [矩阵]

内容概要:本文系统梳理了多个科研领域的前沿研究与技术实现,重点涵盖FDTD方法中的完美匹配层(PML)研究,以及Matlab/Simulink在电磁、电力、控制、通信、信号处理、图像处理、路径规划、能源系统优化等领域的仿真与算法实现。文中列举了大量基于Matlab和Python的科研案例,如风电功率预测、负荷预测、无人机三维路径规划、电池系统故障诊断、雷达模拟、通信编码、微电网优化调度等,并强调结合智能优化算法(如粒子群、遗传算法、深度学习等)提升系统性能。同时,提供了丰富的代码资源与仿真模型,涵盖永磁同步电机控制、逆变器设计、多智能体任务分配、虚拟电厂调度等复杂系统,助力科研人员快速开展复现实验与创新研究。; 适合人群:具备一定编程基础,熟悉Matlab/Python工具,从事电气工程、自动化、通信、人工智能、新能源、控制科学等相关领域研究的研发人员及研究生。; 使用场景及目标:① 学习并实现FDTD仿真中的PML边界条件以有效抑制数值反射;② 掌握Matlab/Simulink在多物理场建模、控制系统设计与优化算法中的综合应用;③ 借助提供的代码资源完成科研复现、课程设计、竞赛项目或工程原型开发; 阅读建议:此资源以科研实战为导向,不仅提供理论方法,更强调代码实现与仿真验证。建议读者结合自身研究方向,按目录顺序查阅相关模块,下载配套代码进行调试与二次开发,以达到学以致用、融会贯通的目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值