- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB基础 基础
●美国Mathwork公司于1984年 推出的软件包MATLAB(含义 是矩阵实验室,是Matrix Laboratory的缩写)是当今世界 上最好的科学计算工具。
特点
• 强大的数值运算功能 • 数据分析和可视化功能 • 文字处理功能 • 高级、简单、高效的程序环境 高级、简单、 • 开放及可延伸的架构 • 丰富的工具箱
矩
阵
矩阵的建立
矩阵是Matlab的基本数据单元,在Matlab中形成矩阵有直接键盘输入、函数生成 和从数据文件读入等多种方式 •直接键盘输入矩阵 形成小型矩阵的常用办法是直接键盘输入矩阵,输入矩阵时要以“[ ]”为其标识 形成小型矩阵的常用办法是直接键盘输入矩阵,输入矩阵时要以“ 为其标识 内部, ,即矩阵的元素应在“[ ]”内部,矩阵的同行元素之间由空格或逗号“,”分隔 即矩阵的元素应在“ 内部 矩阵的同行元素之间由空格或逗号“ ,行与行之间要用分号“;”或回车符分隔 行与行之间要用分号“ 输入矩阵时,所有行要有相同的列. 输入矩阵时,所有行要有相同的列 矩阵元素可为运算表达式, 矩阵元素可为运算表达式,无任何元素的矩阵为空矩阵 例 m=[1 2 3 4 ;5 6 7 8;9 10 11 12] ; p=[1 1 1 1 2222 3 3 3 3]
Matlab的启动 的启动
环境下, 在MS-WINDOWS环境下,安装 环境下 安装Matlab 后就在WINDOWS下得到 下得到Matlab图标 后就在 下得到 图标 用鼠标双击该图标即可启动Matlab,也 , 用鼠标双击该图标即可启动 即进入Matlab的命令窗口,在命令窗口 的命令窗口, 即进入 的命令窗口 中可以直接输入命令行, 中可以直接输入命令行,以实现计算和 绘图等
反正弦函数 反余弦函数 反正切函数 最大值 元素的总和 以 e 为底的指数 以 10 为底的对数 取整
语句
语句形式 变量=表达式 变量 表达式
•输入一个语句并以回车结束,则在工作 输入一个语句并以回车结束, 输入一个语句并以回车结束 区显示计算结果,语句以“ 结束, 区显示计算结果,语句以“;”结束, 只进行计算但不显示结果 •太长的表达式可以用续行号…将其延续 到下一行 •一行可以写几个语句,它们之间用逗号 或句号分开
例:定义函数 f(x1,x2)=100(x2-x12)2+(1-x1)2 1.建立 文件:fun.m 建立M文件 建立 文件: function f=fun(x) f=100*(x(2)-x(1)^2)^2+(1-x(1))^2 2. 可以直接使用函数fun.m 可以直接使用函数fun.m
例如: 只需在Matlab命令窗口键入命令: 命令窗口键入命令: 例如:计算 f(1,2), 只需在 命令窗口键入命令 x=[1 2] fun(x)
Matlab的命令窗口 的命令窗口
变 量
MATLAB中变量的命名规则 命名规则 (1)由字母、数字和下划线组成 (2)变量名区分大小写 (3)变量名最多不超过31个字符 (4)变量名必须以字母打头 (5)变量名中不允许使用标点符号 (6)不需要类型说明和维数语句
特殊变量表
特殊变量 ans pi eps flops inf NaN i,j nargin nargout realmin realmax 取 值 用于结果的缺省变量名 圆周率 计算机的最小数,当和 1 相加就产生一个比 1 大的数 浮点运算数 无穷大,如 1/0 不定量,如 0/0 i=j= − 1 所用函数的输入变量数目 所用函数的输出变量数目 最小可用正实数 最大可用正实数
•从数据文件读入矩阵 从数据文件读入矩阵
形成大型矩阵的常用办法是使用“ 形成大型矩阵的常用办法是使用“laod”从 从 数据文件读入矩阵, 数据文件读入矩阵,如“fort.1”是一个纯 是一个纯 数据文件,该文件共有m行 数据文件,该文件共有 行,行与行由回 车符分隔, 车符分隔,同行数据两两由空格分隔,并且 每一行数据个数相等为n,则执行load 每一行数据个数相等为 ,则执行 fort.1就形成一个矩阵 就形成一个矩阵fort.. 就形成一个矩阵
数学函数
函 数 名 称 函 数 名 称
sin(x) cos(x) tan(x) abs(x) min(x) sqrt(x) log(x) sign(x)
正弦函数 余弦函数 正切函数 绝对值 in(x) acos(x) atan(x) max(x) sum(x) exp(x) log10 ( x) fix(x)
(2)数组 数组运算 )数组-数组运算 当两个数组有相同维数时, 当两个数组有相同维数时,加、减、乘、除、 幂运算可按元素对元素方式进行的, 元素对元素方式进行的 幂运算可按元素对元素方式进行的,不同大小或维 数的数组是不能进行运算的. 数的数组是不能进行运算的
设:a=[a1,a2,…,an], b=[b1,b2,…,bn] 则:a+b= [a1+b1,a2+b2,…,an+bn] a.*b= [a1*b1,a2*b2,…,an*bn] a./b= [a1/b1,a2/b2,…,an/bn] a.\b=[b1/a1,b2/a2,…,bn/an] a.^b=[a1^b1,a2^b2,…,an^bn]
特殊矩阵的建立.
•a=ones(m,n);生成 行、n列的元素全为 的矩阵 生成m行 列的元素全为1的矩阵 生成 列的元素全为 的矩阵a •b=zeros(m,n); 生成 行、n列的元素均为 的矩阵 生成m行 列的元素均为0的矩阵 列的元素均为 的矩阵b •c=eye(n); 生成 阶单位矩阵 生成n阶单位矩阵 阶单位矩阵c •d=rand(m,n); 生成 行、n列的随机矩阵 生成m行 ×列的随机矩阵 列的随机矩阵d •e1=linspace(s1,s2,n); 以起始值 以起始值=s1,终止值 终止值=s2, 终止值 等间隔生成n个元素的等分向量 等间隔生成 个元素的等分向量 •e2=s0:s1:s2; 以起始值 以起始值=s0,增值 ,终止值 增值=s1,终止值=s2, 增值 等间隔生成等分向量
数
组
创建简单的数组 •x=[a b c d e f ] 创建包含指定元素的行向量 •x=first:last : 创建从first开始,加1计数,到last结束的行向量 •x=first:increment:last : : 创建从first开始,加increment计数,last结束的 行向量 •x=linspace(first,last,n) , , ) 创建从first开始,到last结束,有n个元素的行向量
设:a=[a1,a2,…,an], c=标量 标量 则:a+c=[a1+c,a2+c,…,an+c] a.*c=[a1*c,a2*c,…,an*c] a./c= [a1/c,a2/c,…,an/c](右除) 右除) 右除 a.\c= [c/a1,c/a2,…,c/an] (左除) 左除) 左除 a.^c= [a1^c,a2^c,…,an^c] c.^a= [c^a1,c^a2,…,c^an]
命令式M文件
将Matlab的命令按顺序编制成一个 文本文件
函数式M文件 函数式 文件
用来定义函数子程序,它由 起头, 用来定义函数子程序 它由function起头, 它由 起头 后跟的函数名必须与文件名相同, 后跟的函数名必须与文件名相同,它有 输入输出元(变量), ),可进行变量传递 输入输出元(变量),可进行变量传递
矩阵中元素的操作
的第r行 (1)矩阵 的第 行:A(r,:) )矩阵A的第 ( ,:) 的第r列 (:,r) (2)矩阵 的第 列:A(:, ) )矩阵A的第 (:, 的每一列, 拉伸为一个列向量: (:) (3)依次提取矩阵 的每一列,将A拉伸为一个列向量:A(:) )依次提取矩阵A的每一列 拉伸为一个列向量 的第i 列构成新矩阵:A(i1:i2, j1:j2) (4)取矩阵 的第 1~i2行、第j1~j2列构成新矩阵 )取矩阵A的第 的第i 构成新矩阵:A(i2:-1:i1,:) (5)以逆序提取矩阵 的第 1~i2行,构成新矩阵 )以逆序提取矩阵A的第 : 的第j 构成新矩阵:A(:, j2:-1:j1 ) (6)以逆序提取矩阵 的第 1~j2列,构成新矩阵 )以逆序提取矩阵A的第 : 的第i 构成新矩阵:A(i1:i2,: ] ,:)=[ (7)删除 的第 1~i2行,构成新矩阵 )删除A的第 的第j 构成新矩阵:A(:, (8)删除 的第 1~j2列,构成新矩阵 :, j1:j2)=[ ] )删除A的第 拼接成新矩阵: (9)将矩阵 和B拼接成新矩阵:[A B];[A;B] )将矩阵A和 拼接成新矩阵 ; ;
3、数组的方向
前面例子中的数组都是一行数列,是行方向分布的 前面例子中的数组都是一行数列,是行方向分布的. 称之为行向量 数组也可以是列向量 列向量, 称之为行向量. 数组也可以是列向量,它的数组操作和运 行向量 算与行向量是一样的,唯一的区别是结果以列形式显示 算与行向量是一样的,唯一的区别是结果以列形式显示. 产生列向量有两种方法: 产生列向量有两种方法: 直接产生 转置产生 例 例 c=[1;2;3;4] ; ; ; b=[1 2 3 4]; c=b’
数组元素的访问
访问一个元素: x(i)表示访问数组x的第i个元素. (1)访问一个元素 访问一个元素 (2)访问一块元素 访问一块元素: x(a :b :c)表示访问数组x的从第a 访问一块元素 个元素开始,以步长为b到第c个元素(但不超过c),b可 以为负数,b缺损时为1. (3)直接使用元素编址序号 x([a b c d]) 表示提取 直接使用元素编址序号. 直接使用元素编址序号 数组x的第a、b、c、d个元素构成一个新的数组 [x(a) x(b) x(c) x(d)].
说明: 空格或逗号分隔的元素指定的是不同列的 说明:以空格或逗号分隔的元素指定的是不同列的 元素,而以分号分隔的元素指定了不同行的元素 元素,而以分号分隔的元素指定了不同行的元素. 分号分隔的元素指定了不同行的元素
数组的运算
(1)标量 数组运算 )标量-数组运算 数组对标量的加、 数组对标量的加、减、乘、除、乘方是数组的每个 元素对该标量施加相应的加、 乘方运算. 元素对该标量施加相应的加、减、乘、除、乘方运算
矩阵的运算
(1)标量 矩阵运算 )标量-矩阵运算 同标量-数组运算 数组运算。 同标量 数组运算。 (2)矩阵 矩阵运算 )矩阵-矩阵运算 [1] 元素对元素的运算,同数组 数组运算。 元素对元素的运算 同数组-数组运算 的运算, 数组运算。
数学运算符号及标点符号
+ — * .* / ./ ^ .^ \ 加法运算,适用于两个数或两个同阶矩阵相加. 减法运算 乘法运算 点乘运算 除法运算 点除运算 乘幂运算 点乘幂运算 反斜杠表示左除.
(1)MATLAB的每条命令后,若为逗号或无标点符号, 逗号或无标点 逗号 则显示命令的结果;若命令后为分号 分号,则禁止显示结果. 分号 (2)“%” 后面所有文字为注释. (3) “...”表示续行.
•.用M命令文件生成矩阵
M命令文件FORT1.M共有m行,行与 行由回车符分隔,同行数据两两由空 格分隔,并且每一行数据个数相等为n ,则执行 Fort1就形成一个矩阵fort1.
•用函数生成矩阵 用函数生成矩阵
若干有特殊意义和结构的矩阵, 若干有特殊意义和结构的矩阵,在 Matlab中可用函数生成 中可用函数生成
Matlab有两种工作方式
•人机交互的命令行指令操作方式 人机交互的命令行指令操作方式 •进行控制流的程序设计 即编制一种可存储 进行控制流的程序设计--即编制一种可存储 进行控制流的程序设计 的以M为扩展名的文件 简称M文件),在 为扩展名的文件( 文件), 的以 为扩展名的文件(简称 文件),在 Matlab下执行该程序 下执行该程序 M文件建立方法 文件建立方法 •在Matlab中,点File->New->M-file 在 中 • 在编辑窗口中输入程序内容 • 点File->Save,存盘 ,