初识Matlab

初识Matlab

求x^2-3x+1=0的根。
方法一:利用MATLAB多项式求根函数roots来求根。
p=[1,-3,1];
x=roots§

绘图:
x=-5:0.1:5;
y1=x.x-3x+1;
y2=zeros(size(x));
plot(x, y1, x, y2);

方法二 : 利用求单变量非线性方程根的函数fzero,求方程在某个初始点附近的实根。
f=@(x) xx-3x+1;
x1=fzero(f, 0.5)

x2=fzero(f, 2.5)

方法三:利用最优化工具箱中的方程求根函数fsolve。
f=@(x) xx-3x+1;
x1=fsolve(f, 0.5, optimset(‘Display’, ‘off’))

x2=fsolve(f, 2.5, optimset(‘Display’, ‘off’))

方法四:利用solve函数求方程的符号解,即求得的解是一个表达式。
syms x
x=solve(x^2-3*x+1)

x=eval(x)

Matlab的特点编程效率高

Matlab基础

1.1Matlab系统环境
  • 操作界面
    1. 主窗口
    2. 命令行窗口: …为续行符
    3. 当前文件夹窗口
      3.1 设置当前文件夹
      • 在当前文件夹工具栏或当前文件夹床楼选择某文件夹为当前文件夹
      • 使用cd命令>>cd e:\work
    4. 工作区窗口
    • 变量信息及显示
  • 搜索路径
    变量->内部函数->程序文件->当前文件夹下的程序文件、再到文件搜索路径文件夹中的程序文件

1.2Matlab数值数据
  1. 数值数据类型的分类
    • 整型
      • 无符号整数:8、16、64位整数
        • 取值范围:00000000 ~ 11111111(0 ~ 2^8 -1)
      • 带符号整数:8、16、64位整数
        • 取值范围:10000000 ~ 01111111(-2^7 ~ 2^7-1)
      • >>x=int8(129) %输出127 x=uint8(129) %输出129
    • 浮点型
      • single函数:将其他类型的数据转换为单精度型
      • double函数:将其他类型的数据转换为双精度型 class()%返回数据类型函数
    • 复数型:虚数单位用i或j来表示
      • real函数:求复数的实部
      • imag函数:求复数的虚部
  2. 数值数据的输出格式
    • format命令的格式 >> format long(short)
      注意:format命令只影响数据输出格式,而不影响数据的计算和存储
  3. 常用数学函数
    • 函数的调用格式为:函数名(函数自变量的值) 函数运算时将函数逐项作用与矩阵的每个元素上
    • 常用函数的应用
      • 三角函数以角度为单位在函数名后加‘d’
        • >>sin(pi/2) sind(90)
      • abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值
        • abs(-4) abs(3+4i) abs('a')
      • 用于取整的函数有fix、floor、ceil、round
      • 函数应用举例
        • 分别求一个三位正整数的个位数子、十位数字、百位数字
        • 求[1,100]区间的所有素数

1.3变量及其操作
  1. 变量与赋值语句
    • Matlab中变量名区分大小写
    • Matlab内置变量一般为小写
      • exp()%自然指数函数
  2. 预定义变量
    • ans是默认赋值变量
    • i和j代表虚数单位
    • pi表示圆周率
    • NaN表示非数(绘图时需要裁掉一部分,把裁掉的部分的坐标数据设为NaN
  3. 变量的管理
    • 内存变量的删除与修改(工作区)
    • who和whos命令
    • 内存变量文件(扩展名为.mat)
      • save命令:创建内存变量文件>>save mydata a x %将变量a x 存入mydata.mat文件
      • load命令:装入内存变量文件>>load mydata

1.4 Matlab矩阵的表示
  1. 矩阵的建立
    • 利用直接输入法A=[1,2,3;4,5,6;7,8,9]
    • 拼接矩阵 C=[A,B;B,A]
  2. 冒号表达式 t = e1:e2:e3e1为初始值 e2为步长 e3为终止值————产生一个行向量
    • linspace函数 linspace(a,b,n)a为第一个元素 ,b为最后一个元素,n是元素总数
  3. 结构矩阵和单元矩阵
    • 结构矩阵:将数据类型不同而逻辑上相关的数据组成一个有机整体
      • 格式:结构矩阵元素.成员名=表达式
      • a(1).x1=10 ;a(1).x2='liu'; a(1).x3=[11,21,34,78];
    • 单元矩阵:与一般矩阵相似,用大括号括起
      • b = {10,'liu',[11,21,34,78];12,'wang',...}

1.5 矩阵元素的引用
  1. 矩阵元素的引用方式
    • 通过下标来引用矩阵的元素
      • A(3,2)表示A矩阵第三行第二列的元素
    • 通过序号来引用(矩阵元素在内存中的排列顺序)
      • 以m×n矩阵A为例,矩阵元素A(i,j)的序号为 (j-1)×m+1
      • sub2ind函数:将矩阵中指定元素的行、列下标转换成存储的序号。D = sub2ind(S,I,J)
        • S 为矩阵行数和列数组成的向量;D 为序号
        • I 为转换矩阵的行下下标;J 为转换矩阵的列下标
      • ind2sub函数:将矩阵元素的序号转汉城对应的下标[I,J]=ind2sub(S,D)
  2. 利用冒号表达式获得子矩阵(矩阵中一部分元素构成的矩阵)
    • A(i,:) 第i行的全部元素
    • A(:,j) 第j列的全部元素
    • A(i:i+m,k:k+m) 第ii+m行内且在第kk+m列中的所有元素
    • A(i:i+m,:) 第i~i+m行的全部元素
    • end表示最后的元素
  3. 利用空矩阵删除矩阵中的元素
    • 例如:A(:,[2,4])=[]第二列和第四列矩阵元素删除
  4. 改变矩阵的形状(只改变矩阵的行数和列数不改变元素个数和顺序)
    • 例如:y=reshape(x,3,4)
    • A( : ) 将矩阵每一列的元素堆叠起来,成一个列向量

1.6 Matlab基本运算
  1. 算术运算
    • 基本算术运算(四则运算)+ - * /(右除) \(左除) ^乘方
      • Matlab的算术运算是在矩阵的意义下进行的
      • 单个数据的算术运算只是矩阵运算的一种特例
    • 🔈点运算
      • 点运算符:.*点乘 ./ 点右除 .\ 点左除 .^点乘方
      • 两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵同型
  2. 关系运算📌
    • 关系运算符:<小于<=小于等于 >大于 >=大于等于 ==等于 ~=不等于
    • 1.当两个比较量时标量时,直接比较两数大小,若关系成立表达式结果为1,否则为0
    • 2.当参与比较的量时两个同型矩阵时,比较两矩阵相同位置的元素按标量关系运算规则逐个进行,最终返回一个与原矩阵同型的01矩阵
    • 3.当参与比较的是一个标量,另一个是矩阵是,则把标量与矩阵每一个元素进行关系运算,得到上述01矩阵
  3. 逻辑运算
    • 逻辑运算符: &与 |或 ~非
    • 标量运算规则
      • a&b a、b全为非零是,运算结果为1,否则为0
      • a|b a、b中只要有一个为非零时,运算结果为1
      • ~a 当a为零时,运算结果为1

1.7 字符串处理⛅️⛅️⛅️
  1. 字符串的表示
    • 在Matlab中,字符串时用单引号括起来的字符序列>>xm='National University of Defense Technology'
      • 相当于一个行向量,可以用切片进行索引>>xm(1:3)
    • 若字符串中含有单引号,则要用两个单引号表示
    • 多行字符串(字符串矩阵)ch=['abcdef';'123456']
  2. 字符串的操作
    • 字符串的执行;格式:eval(s)将字符串s中的内容作为matlab命令执行⚠️
    • 字符串与数值之间的转换💪
      • abs和double函数获取字符串矩阵对应的ASCII码数值矩阵s1=MATLAB; a=abs(s); a= 77 65 84 76 65 66
      • char函数可以把ASCII码矩阵转换为字符串矩阵char(a+32) ans = matlab
    • 字符串的比较😊
      • 关系运算符比较'www0'>='W123' ans =1 1 1 0
      • 字符串比较函数
        • strcmp(s1,s2);用来比较字符串s1和s2是否相等,如果相等,返回结果为1,否则为0
        • strncmp(s1,s2,n);用来比较两个字符串前n个字符是否相等,如果相等返回1,否则返回0
        • strcmpi(s1,s2);在忽略大小写前提下,比较字符串s1和s2是否相等,如果相等,返回1,否则返回0
        • strncmpi(s1,s2,n);在忽略字符串大小写前提下,比较两个字符串前n个字符是否相等,如果相等返回1,否则返回0
      • 字符串的查找与替换👍
        • findstr(s1,s2);返回短字符串在长字符串中的开始位置
        • strrep(s1,s2,s3);将字符串s1中的所有子字符串s2替换为字符串s3

第一专题知识点总结

思维导图 mindmap


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值