大一新生初学MATLAB记录(一)

目录

声明

1 系统环境与设置

1.1  MATLAB的功能

1.2  路径设置及相关命令

2 数据操作及语法

2.1  变量和语句

2.2  变量管理

2.3  数据输出格式控制

2.4  数据类型

3 矩阵操作

3.1  MATLAB的数据形式

3.2  矩阵的建立

3.3  矩阵的简单操作

4 矩阵处理基础

4.1  特殊矩阵的建立

4.2  矩阵的基本运算

4.3  线性方程组的求解

4.4  矩阵的相似化简

4.5  向量和矩阵的范数

4.6  矩阵分析


声明

        笔者是2022级大一新生,刚接触过C语言课程,出于兴趣和社团活动需要想尝试上手自学MATLAB。此贴仅作为记录学习过程与结果之用,或供同为小白新手的初学者同好们参考。限于笔者水平,文中定有不妥和错误之处,恳请各位批评指正。

        学习资料来源:https://www.bilibili.com/video/BV1nG4y1C7JL?p=3&vd_source=6a53e08a63c5f91458f89f0bef4ff1ea


1 系统环境与设置

1.1  MATLAB的功能

  • 计算
    包括数值计算、矩阵计算、符号计算等
  • 绘图
  • 编程
  • 工具箱(Toolbox)
    功能性:扩展计算、建模仿真、文字处理等
    学科性:信号处理、图像处理、金融计算、神经网络等

 1.2  路径设置及相关命令

        MATLAB运行时对语句的搜寻顺序是:变量→函数→当前目录的文件→搜索目录的文件

        与文件路径相关的几个命令:

  1. 显示或设置搜索路径

    path        显示所有的搜索路径




    path(path,'文件路径')        添加新的搜索路径


     
  2. 查看当前的工作目录(Current Directory)

    cd


     
  3. 显示或设置用户路径

    userpath        显示用户路径



    userpath('文件路径')        更改用户路径


     
  4. 保存路径更改

    savepath
     
  5. 路径工具

    pathtool        直观设置MATLAB的路径



     
  • 清空命令窗口

    clc
     
  • 获取命令、函数的解释

    help 命令或函数


2 数据操作及语法

2.1  变量和语句

  1. 变量的命名规则:

    (1)与C语言相似,变量名应以字母开头,可以包括数字、字母下划线,并且区分大小写

    (2)与C语言的不同之处是,MATLAB中的变量不需要进行声明或定义

                    合法的变量名:

                                    A (√)        arr_1 (√)        x1 (√)


                    不合法的变量名:

                                    5abc (×)        _arr (×)

     
  2. MATLAB的语句(命令行窗口输入):

    (1)回车表示语句结束,同时输出执行结果



    (2)有分号则该语句只执行、不输出



    (3)注释以“%”开头,注释一行



    (4)“...”用于续行,若不用“...”续行而是直接回车换行,则语句会直接被执行



    (5)赋值语句:    变量名 = 表达式

    将“=”后表达式的结果赋值给“=”前的变量

    若直接输入表达式,则其结果会赋值给默认变量“ans”


     

2.2  变量管理

  1. 查看变量

    (1)工作区:可以直观地显示变量名、值、类型等信息



    (2)使用相关命令:

            who
                    显示所有的变量名称



            whos
                    显示变量的详细信息


     
  2. 清除变量

    clear 变量1 变量2 ...
                                清除确定的一个或几个变量

    clear        或        clear all
                                
    清除所有的变量
     
  3. 保存变量

    将当前的变量保存为一个.mat文件,方便下次直接使用

            save 文件名 变量1 变量2 ...  -appen -ascii

    (1)若无“文件名”则默认保存为“matlab.mat”;
    (2)若不输入“变量1 变量2 ...”则默认全部保存;
    (3)“-append”用于在已有的.mat文件中追加续写,若无则写入时会覆盖原文件;

    (4)“-ascii”用于生成无后缀文件,其中数字被保存为数值,字符被保存为ASCII码;
    (5)“-append”与“-ascii”的位置不限(只要在save后即可)
     
  4. 加载变量

    将先前保存过的.mat文件中的变量加载到当前工作区

    (1)若.mat文件在当前目录(Current Directory)中:

            load 文件名       或        load '文件名.mat'

                  

    (2)若.mat文件在其他目录:

            load '文件目录'

                 


 2.3  数据输出格式控制

        format 格式符

        用于控制输出数据的格式,默认是short格式

格式符

输出格式

short

定点数输出,保留小数点后4位

long

定点数输出,双精度保留小数点后15位,单精度保留7位

shorte

浮点数输出,尾数保留小数点后4位

longe

浮点数输出,尾数双精度保留小数点后15位,单精度保留7位

shortg

在short/shorte中视情况选择最佳的输出方式

longg

在long/longe中视情况选择最佳的输出方式

shorteng

工程格式,阶数较shorte更高

longeng

工程格式,阶数较longe更高

bank

货币格式,保留小数点后两位

hex十六进制格式
rat以分数的形式输出

         尽管不同格式显示的精度可能会不同,但数据的计算和储存不会受到影响。
 

2.4  数据类型

  1. 数值

    直接赋值:变量名=数值        默认数值为double型

    查看数值类型:

                    class(变量)

    数值类型的转换:

             
          uintx(变量)        将数值转化为x位无符号整型,x为8,16,32,64
                 
     
                    double(
    变量)  将数值转化为双精度浮点型

                    
                    
  2. 字符(串)

    无论是单字符还是字符串,都用单引号''

    (1)将字符转化为ASCII码:

           
    double(‘字符串’)                abs(‘字符串’)



    (2)将ASCII码转化为字符:

         
      char(数值)

            


    (3)数值与字符的转换:

           
     num2str(数值       将数值转换为字符

            

            str2num(‘字符’)        将字符转换为数值

            

    (4)将字符串的内容作为语句执行:

           
    eval(’字符串‘)

            

     
  3. 结构体(structure)

    (1)结构体的创建:

        方式一:函数命令创建

                struct('成员1',表达式1,'成员2',表达式2,...)

    该函数的返回值是一个结构,
    其中表达式1的结果赋值给成员1、表达式2的结果复制给成员2,以此类推。




        方式二:直接创建成员

                
    结构名.成员名=表达式





    (2)与结构相关的函数:

           
    isstruct(变量)                判断是否为结构体,返回1或0

             

           
    fieldnames(结构名)      显示结构中的所有成员名
            
            


            isfield(结构名,'字符串')    判断字符串内容是否为该结构中的成员

            


            rmfield(结构名,‘字符串’)  将字符串内容所代表的成员从该结构中移除

            

            getfield(结构名,'字符串')    等价于   结构名.成员名

            
     
  4. 单元(cell)

    {元素1,元素2,......}

    将多个数据集合成一个变量


     

3 矩阵操作

3.1  MATLAB的数据形式

MATLAB中的各种数据实际上均以矩阵的形式存在,矩阵是MATLAB最基本的数据对象

1*1——标量
m*1、1*n——向量
m*n——矩阵

3.2  矩阵的建立

  1. 命令窗口直接输入矩阵:

    矩阵名=[元素11,元素12,……,元素1n;元素21……元素2n;……;元素m1,元素m2,……,元素mn]



    同一行不同元素用空格“,”分隔,不同行用“;”分隔
     
  2. .m文件建立:

    点击按钮,或使用edit命令启动脚本编辑器,可同时编辑多个矩阵



    可保存为.m文件
    在命令窗口中直接输入文件名称即可运行.m文件(当前目录需包含该.m文件)

 3.3  矩阵的简单操作

  1. 引用矩阵元素

    使用下标或序号来引用元素:

    (1)矩阵名(行标,列标)



    (2)矩阵名(序号)

    元素序号与行列标的关系:

                            r=m+M(n-1)
                    ​​​​​ (r为序号,M为总行数,m为行标,n为列标) 
      

    以3*3矩阵为例,各元素的序号是:
     

                    1  4  7

                    2  5  8

                    3  6  9
     

  2. 获取元素的标号:

    find(表达式)

    只有一个返回值时,返回元素的序号



    有两个返回值时,返回元素的行标和列标



    符合条件的元素有多个时,会将所有的结果集合成列向量:

                        
     
  3. 重排矩阵

    (1)将矩阵按顺序重排为等元素数的另一矩阵

                reshape(矩阵名,新矩阵行数,新矩阵列数)

               


    (2)将矩阵转换为列向量

               
    矩阵名(:)


     
  4. 部分矩阵的引用

    (1)“:”表示该行或列的全部



    (2)“m:n”表示“第m行(或列)到第n行(或列)”



    可以用“end”来代表最后一行(或列)



    (3)引用不连续的行或列:

    矩阵名(向量1,向量2)

    如下图,表示引用第2、4行和第1、2、4列交叉所得的部分


     
  5. 删除矩阵元素:将矩阵赋为空值

            引用矩阵=[]


     
  6.  扩展(重复)矩阵

            repmat(矩阵,行数,列数)


     
  7. 压缩矩阵

    相同的元素只保留一个,其余重复的元素被去除,同时所有元素顺序重新排列

            unique(矩阵名)

              


4 矩阵处理基础

4.1  特殊矩阵的建立

  1. 零矩阵、幺矩阵与单位矩阵:

    矩阵中所有元素均为0;
    矩阵中所有元素均为1;
    主对角线元素为,其余元素全为0;

    建立零矩阵:
    zeros                无参数为1*1矩阵(标量)
    zeros(n               一个参数,为n阶方阵
    zeros(m,n)                两个参数,为m*n矩阵

    zeros(a1,a2,...,ak               k个参数,为k维矩阵

    建立幺矩阵:
    ones()                用法同zeros()



    建立单位矩阵:
    eye()                用法同zeros()

     
  2. 行向量(1*n矩阵)

    (1)冒号表达式

                    e1:e2:e3
                (三个参数分别表示初始值、步长、终止值)


    (2)linspace函数

                    linespace(e1,e2,n)
         
          (三个参数分别表示初值、终值、元素数)
                  元素数省略时默认为100,元素大小平均分布



     
  3. 随机矩阵(参数用法与零矩阵的建立相同)

    rand()                产生0~1的随机矩阵


    randn()                产生均值为0、方差为1的标准正态分布的随机矩阵


    改变随机矩阵的范围:
    (1)产生范围为a~b的随机数:a+(b-a)*rand()
    (2)产生均值为u、方差为s的正态分布随机数:u+sqrt(s)*randn()

    求算均值的函数:
                    mean(行或列)
    求算方差的函数:
                    std(行或列)

     
  4.  魔方矩阵

               magic(阶数    

    返回方阵,该方阵的行、列、对角线之和为定值,该定值为:

                 C=\frac{n(n^2+1)}{2}


     
  5. Hilbert矩阵

               magic(阶数    

    返回方阵,该方阵的各元素满足:

    a_{ij}=\frac{1}{i+j-1}


     
  6. Toeplitz矩阵

              toeplitz()

    以第一个向量作列、第二个向量作行生成矩阵,矩阵中各元素满足:

                             a_{ij}=a_{i-1 j-1} \ (i,j>1)


     

4.2  矩阵的基本运算

  1. 加法、减法、数乘与矩阵乘积

    +  -  *



     
  2. 转置

    矩阵名'


     
  3. 行列式

    det(矩阵名)

     
  4. 逆矩阵

    inv(矩阵名)

     
  5. 向量内积

    (1)按定义计算

                (\alpha ,\beta)=\alpha^T\beta

    (2)用函数计算

                dot(向量1,向量2)
        
                

4.3  线性方程组的求解

4.4  矩阵的相似化简

  1. Jordan标准型(相似对角化)

            jordan(矩阵)

    只有一个返回值时,返回矩阵的相似对角形


    有两个返回值时,返回相似变换矩阵和相似对角形

     
  2. 矩阵的特征值

    eig(矩阵)

    只有一个返回值时,返回矩阵的特征值(集合成一个列向量)


    有两个返回值时,返回由特征向量构成的矩阵和对角形,两者按列一一对应

4.5  向量和矩阵的范数

  1. 行、列向量范数的类型
    范数类型计算公式参数
    1-范数\sum_{i=1}^{m}\left | a_i \right |1
    2-范数\sqrt{\sum_{i=1}^{m} a_i^2}2
    r-范数\sqrt[r]{\sum_{i=1}^{m} \left | a_i \right |^r}r
    ∞-范数\max \{\left | a_1\right |,\left | a_2\right |,...,\left | a_m\right |\}inf
    f范数——‘fro’
  2. 求向量或矩阵的范数

    norm(矩阵,r)           (r是参数,默认为2)


4.6  矩阵分析

  1. 函数矩阵

    (1)建立未知量(用于符号运算)

                    syms 符号名

    (2)建立函数

                    矩阵名=[函数表达式]


            每个函数作为矩阵中的一个元素

    (3)函数求导

                    diff(矩阵,k)            k为求导阶数,默认为1


     
  2. 矩阵函数

    (1)指数矩阵函数: e^A

                  expm(矩阵)  



    (2)通用矩阵函数:f(A)

                    funm(矩阵,@函数


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值