【MATLAB】 【B站网课笔记】 【PART 1· MATLAB基础知识】

最近在学习matlab,看b站网课时做的一些笔记,放上来给大家学习参考,仅供学习交流。

  • 1.MATLAB的搜索路径:变量–>内部函数–>程序文件–>(当前文件夹下的程序文件–>文件搜索路径文件夹中的程序文件)
  • 2.设置文件搜索路径:
    • ①用path命令设置
      • //>>path(path,’e:\work’)
      • //
    • ②用对话框(主界面下的环境下的设置路径)
  • 3.数值数据类型:整型、浮点型、复数型
    • (1)整型:无符号/带符号8/16/32/64位整数
      • 数据类型转换函数,uint8函数将数值数据转换为无符号8位整数,int8函数将数值数据转换为带符号8位整数
    • (2)浮点型:分单精度(4字节)和双精度(8字节,默认为双精度),single函数转换为单精度, double函数转换为双精度
    • (3)复型:包括实部和虚部,默认为双精度型,虚数单位用i或j表示。
      • real函数求实部,imag函数求虚部
  • 4.数值数据的输出格式:
    • format命令的格式:format 格式符 例如,
    • //>>format long>>50/3
    • //
    • format命令只影响数据输出格式,而不影响数据的计算和存储。
  • 5.常用数学函数
    • (1)调用格式:函数名(函数自变量的值)
      • 函数自变量规定为矩阵变量,函数运算时是将函数逐项作用于矩阵的每个元素上,故运算结果为一个与自变量同型的矩阵。
    • (2)常用函数的应用
      • a.三角函数:以角度为单位的函数要在函数名后面加“d”以表示区别。
      • b.abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值。
      • c.用于取整的函数:fix、floor、ceil、round
        • round四舍五入,ceil向上取整,floor向下取整,fix舍去小数取整
      • d.sqrt 开平方
      • e.exp e的指数
      • f.应用举例
        • 求[1,100]区间的所有素数
        • //>>x=1:100;
        • //>>k=isprime(x);
        • //>>k1=find(k);
        • //>>p=x(k1)
        • //
  • 6.变量:本质上是内存单元的一个抽象。变量名以字母开头,最多63个字符,区分字母大小写。标准函数名以及命令名必须用小写字母。
    • a.赋值语句格式
      • 变量=表达式
      • 表达式
      • (;表示该语句只赋值,不计算)
    • b.预定义变量:由系统本身定义的变量
      • ①ans是默认赋值变量
      • ②i和j代表虚数单位
      • ③pi代表圆周率
      • ④NaN代表非数(绘图时,可将要裁掉部分的坐标设为NaN)
    • c.who和whos命令可以查看内存变量。
    • d.内存变量文件:扩展名为.mat,也叫MAT文件,用save命令创建内存变量文件,用load命令装入内存变量文件
      • //
      • //>>save mydata a x
      • //>>load mydata
      • //
  • 7.矩阵
    • (1)矩阵的建立
      • ①直接输入法:将矩阵的元素用中括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用逗号或空格分割,不同行的元素之间用分号分隔。
      • ②用小矩阵拼接:相当于矩阵的分块
      • ③还可以用实部矩阵和虚部矩阵构成复数矩阵
      • ④冒号表达式: e1:e2:e3 产生行向量
        • e1为初始值,e2为步长(省略,则默认为1),e3为终止值
      • ⑤linspace函数:linspace(a,b,n)
        • a是第一个元素,b是最后一个元素,n是元素总数(省略时默认为100)
    • (2)结构矩阵和单元矩阵
      • 结构矩阵:结构矩阵元素.成员名=表达式
        • //
        • //>>a(1).x1=10;a(1).x2=’liu’;
        • //>>a(2).x1=11;a(2).x2=’wang’;
        • //
      • 单元矩阵:直接输入,只是单元矩阵元素用大括号括起来。
        • //
        • //>>b={10,’liu’;11,’wang’}
        • //
  • 8.矩阵元素的引用
    • (1)引用方式
      • ①通过下标引用,A(3,2)
        • 超出自动扩展为0
      • ②通过序号引用。
        • 在MATLAB中,矩阵元素按列存储,矩阵元素的序号就是矩阵元素在内存中的排列顺序。A(3)
        • 序号和下标可以利用sub2ind和ind2sub函数相互转换
        • D=sub2ind(S,I,J),D表示序号,S表示行数和列数组成的向量,I是转换矩阵元素的行下标,J是列下标
          • //
          • //>>A=[1:3;4:6]
          • //>>D=sub2ind(size(A),[1,2;2,2],[1,1;3,2])
          • //D=
          • //1 2
          • //6 4
          • //
        • [I,J]=ind2sub(S,D),S为行数和列数组成的向量,D为序号,I、J分别为行、列下标
    • (2)利用冒号表达式获得子矩阵
      • A(i,:) 第i行的全部元素
      • A(:,j) 第j列的全部元素
      • A(i:i+m;k:k+m) 第i-i+m行内且在第k-k+m列中的全部元素
      • A(2:3,1:2:5) 第2、3行的第1、3、5列元素
      • end运算符表示某一维的末尾元素下标
    • (3)利用空矩阵删除矩阵中的元素
      • //
      • //>>A(:,[2,4])=[]
      • //
      • 删除第二列和第四列元素
    • (4)改变矩阵的形状
      • reshape(A,m,n):在矩阵总元素和顺序保持不变的前提下,将矩阵A重新排成m行n列的二维矩阵
      • A(:)将矩阵A的每一列元素堆叠起来成为一个列向量。
  • 9.MATLAB基本运算
    • (1)算术运算
      • ①基本算术运算:+,-,,^(乘方),/(右除),\(左除)
        • 加减:要求矩阵同型,标量也可跟矩阵的每一个元素进行加减
        • 乘法:A的列数等于B的行数
        • 除法:A为非奇异矩阵,B/A等效于Binv(A),B\A等效于inv(A) B
        • 乘方:A^x,要求A为矩阵,x为标量
      • ②点运算:. *,./ ,.\ ,.^
        • 是指对应元素进行相关运算,要求两矩阵同型。
    • (2)关系运算
      • < ,<=,>, >=, ==(等于), ~=(不等于)
      • 关系成立,结果为1;不成立,为0
      • 当参与比较的两是两个同型矩阵时,是对相同位置的元素按标量关系运算规则逐个进行,最终结果是一个与原矩阵同型的矩阵,它的元素由0、1组成。
    • (3)逻辑运算
      • &(与)、|(或)、~(非)
    • (4)运算优先级
      • 算术运算>关系运算>逻辑运算,但逻辑非运算时单目运算,它比双目运算优先级高
  • 10.字符串处理
    • (1)字符串是用单引号括起来的字符序列。
    • (2)若字符串中的字符含有单引号,则该单引号字符要用两个单引号表示。
    • (3)可建立多行字符串,形成字符串矩阵。
    • (4)字符串的执行: eval(s)
    • (5)字符串与数值之间的转换:
      • abs和double函数都可以获取字符串矩阵所对应的ASCII码数值矩阵,char函数可以把ASCII码数值矩阵转换为字符串矩阵。
    • (6)字符串的比较:可以利用关系运算符或者字符串比较函数。
      • 函数strcmp(s1,s2)用来比较字符串s1和s2是否相等,相等则返回1,否则返回0;
      • 函数strncmp(s1,s2,n)用来比较字符串s1和s2前n个字符是否相等,相等则返回1,否则返回0;
      • 函数strcmpi(s1,s2)在忽略字母大小写的前提下,比较字符串s1和s2是否相等,相等则返回1,否则返回0;
      • 函数strncmpi(s1,s2,n) 在忽略字母大小写的前提下,比较字符串s1和s2前n个字符是否相等,相等则返回1,否则返回0。
    • (7)字符串的查找与替换
      • findstr(s1,s2)返回短字符串在长字符串中的开始位置(s1,s2可互换)
      • strrep(s1,s2,s3)将字符串s1中的所有子字符串s2替换为字符串s3

你可能感兴趣的:(Matlab,数学建模,matlab)