第一讲 MATLAB基础知识

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(续表)
预定义变量 含义 NaN(nan) nargin nargout 不是一个数(Not a number),如0/0,∞/0 函数输入参数数目 函数输出参数数目
realmax
realmin
最大正实数
最小正实数
MATLAB初步
(4) matlab的基本运算符
最常见的算术运算符如下:
运算名称 数学表达 matlab 式 运算符 a+b + 加 减 乘 除 幂 a-b a×b a÷b ab * /(\) ^ matlab 表达式 a+b a-b a*b a^b 例子
口中双击该变量名。
(3) 若想使某个窗口脱离matlab desktop,只需 单击“undock form desktop”图标.
MATLAB初步
(4) 计算结果的显示格式(比较重要)
format命令提供多种数据的输出格式,如: format short format rat format long format hex
MATLAB初步
(3) matlab默认的预定义变量
predefined variables ,是matlab系统定义的一些 变量,赋予特定的值和变量名
预定义变量 含义 ans eps Inf (inf) 当前计算结果的缺省变量名 机器零阈值 无穷大
i,j
pi
虚单元 i=j=
圆周率π
1
MATLAB初步
MATLAB初步
几点说明:
所有运算定义在复述域上,只返回第一 象限的解; 如:a=,则 X=A\B,
“/”右除,若XA=B,则 X=B/A,
运算规则: 按与常规相同的优先级自左至右执行
优先级:指数>乘除>加减
括号优先级最高
MATLAB初步
【例1】用循环求解 s=0; s=0;i=1; while i<=100 s=s+i; i=i+1; end 不用循环的方法: s=sum(1:100)
for i=1:100
s=s+i; end
M文件及函数的编写
【例2】用循环求解求最小的 m,
s=0;i=0; while s<=10000 i=i+1; s=s+i; end [s, i]
(g)删除A的第j1~j2列,构成新矩阵:A(:, j1:j2)=[ ]
(h)将矩阵A和B拼接成新矩阵:[A B];[A;B]
(4)矩阵的运算
(i)标量-矩阵运算 同标量-数组运算。 (ii)矩阵-矩阵运算 (a) 元素对元素的运算,同数组-数组运算。
(b)矩阵运算:
矩阵加法:A+B
矩阵乘法:A*B 方阵的行列式:det(A) 方阵的逆:inv(A) 方阵的特征值与特征向量:[V,D]=eig[A]
M文件及函数的编写
【例5】生成一个在[0, 6]上的随机数,以此作 为掷骰子出现的点数,出现1,3,5显示奇数, 出现2,4,6显示偶数,出现0则显示错误.
disp('Play dice,please!') %提示输入信息 Num=round(6*rand) %利用round函数产生在[0,6]上 服从均匀分布的随机数 switch Num case {1,3,5}, disp('Odd') case {2,4,6}, disp('Even') otherwise, disp('You are out!') end
输入a=33+12;再按回车,会出现什么结果? 输入a=33+12 再按回车,会出现什么结果? 在指令后面的“;”的作用是什么?
“;”控制计算结果是否显示。指令后面有分号,
则不显示计算结果,否则显示。
MATLAB初步
对于简单的表达式的计算,步骤为: (1)按照MATLAB的语法规则输入表达式; (2)按回车,则该语句被执行; (3)运行完表达式,matlab输出结果,付给 变量ans. (4) Matlab采用表达式语言,有两种最常 见的形式: 1o 表达式 2o 变量=表达式
M文件及函数的编写
几点规则:
● 建立好的书写风格,保持程序的可读性。 ● m为文件的扩展名,在低版本的MATLAB中 还要注意文件名不超过8位,文件名和变量的命 名规则相同。 ● 以符号%引导的行是注释行、不可执行, 可供heIp命令查询; ● 不需要用end语句作为M文件的结束标志;
M文件及函数的编写
(a)矩阵A的第r行:A(r,:)
(b)矩阵A的第r列:A(:,r)
(c)取矩阵A的第i1~i2行、第j1~j2列构成新矩阵:A(i1:i2, j1:j2) (d)以逆序提取矩阵A的第i1~i2行,构成新矩阵:A(i2:-1:i1,:) (e)以逆序提取矩阵A的第j1~j2列,构成新矩阵:A(:, j2:-1:j1 ) (f)删除A的第i1~i2行,构成新矩阵:A(i1:i2,:)=[ ]
statements 3
【例4】演示if的程序,检测输入数据.
score=input('Please input your score:'); if score>=0 & score<60 disp('You must work harder!'); elseif score>=60 & score<80 disp('Not bad!'); elseif score>=80 & score<90 disp('Great!'); elseif score>=90 & score<=100 disp('Excellent!'); else disp('Are you kidding?'); end
a./b= [a1/b1,a2/b2,…,an/bn] a.^b=[a1^b1,a2^b2,…,an^bn]
4、 矩

(1) 矩阵的建立
逗号或空格用于分隔某一行的元素,分号用于区分不
同的行. 除了分号,在输入矩阵时,按Enter键也表示开始
一新行. 输入矩阵时,严格要求所有行有相同的列.
例 m=[1 2 3 4 ;5 6 7 8;9 10 11 12] p=[1 1 1 1 2222 3 3 3 3]
if-else-end 结构
if
M文件及函数的编写
logical expression 1
if logical expression statements 1 statements end elseif logical expression 2 if logical expression statements 1 else else statements 2 end end statements 2
>>size(A)%返回矩阵A的行和列数
(2) 变量命名规则
MATLAB初步
(i)区分大小写,并不要和matlab定义的 函数名相同; Abc ≠ ABc (ii)首字符必须是英文字母; (iii)变量名中可以有字母,下划线,数字, 但不能包含空格,标点; 有效 MYvar12, MY_Var12 和 MyVar12_ 错误的变量名 12MyVar, _MyVar12 >>a1=[5 6 7 8]; >>a,1=[5 6 7 8]; >>1a=[5 6 7 8];
(5) 善用matlab 的help功能 特别在已知一个指令可带多个参数,而不记得 这些参数的具体含义时,特别有效。关键是知
道你所需要查找的名词或函数的英文名字!
第二部分:MATLAB编程
1.M-script 文件的编写
新建M文件 一般过程 编写指令 调试运行 用户在编制此类文件时,只需把所要执行的命令 按行编辑到指定的文件中,程序运行时, MATLAB按行执行这些指令。
5.使用小技巧
(1) 重新执行已执行过的语句,或给变量 重新赋值,方法: 使用 、 键调出之前运行过的指令; 从command history中直接copy,或者用鼠 标拖某条要重新执行的指令到command window.
MATLAB初步
(2) 在执行多条指令时,中间有些变量不需要 显示,则可在该指令后加上“;”, 若调试时想查看运行的结果,可在workspace窗
(4)数组的运算
(i)标量-数组运算 数组对标量的加、减、乘、除、乘方是数组的每个 元素对该标量施加相应的加、减、乘、除、乘方运算.
设: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= [a1^c,a2^c,…,an^c] c.^a= [c^a1,c^a2,…,c^an]
11+2
11-2 11*2 11^2
a/b ( b\a) 11/2
3.数组的创建、访问与赋值
(1)创建简单的数组 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个元素的行向量
(2) 数组元素的访问
(i)访问一个元素: x(i)表示访问数组x的第i个元素. (ii)访问一块元素: x(a :b :c)表示访问数组x的从第a 个元素开始,以步长为b到第c个元素(但不超过c),b可 以为负数,b缺损时为1. (iii)直接使用元素编址序号. x([a b c d]) 表示提取 数组x的第a、b、c、d个元素构成一个新的数组 [x(a) x(b) x(c) x(d)].
MATLAB初步
(1)用键盘在MATLAB指令窗中输入以下内容 (12+2*(7-4))/3^2
(2)在上述表达式输入完成后,按【Enter】键, 该就指令被执行。
(3)在指令执行后,MATLAB指令窗中将显示: ans = 2
MATLAB初步
【例3 】
“;” 的作用
输入33+12;再按回车,会出现什么结果?
(3)数组的方向
前面例子中的数组都是一行数列,是行方向分布的. 称之为行向量. 数组也可以是列向量,它的数组操作和运
算与行向量是一样的,唯一的区别是结果以列形式显示.
产生列向量有两种方法:
直接产生
转置产生


c=[1;2;3;4]
b=[1 2 3 4]; c=b‟
说明:以空格或逗号分隔的元素指定的是不同列的 元素,而以分号分隔的元素指定了不同行的元素.
MATLAB初步
2.数值、变量和表达式
(1)数值的表示 习惯上采用十进制表示
19 -3 0.0001 1 1.3e-4 4.5e2 9 在采用IEEE浮点算法的计算机,大约16位有 效数字。
数值范围从-1×10308~1×10308
根据需要不同选择不同方式的数据格式
MATLAB初步
MATLAB语言并不要求对所他用变量进行事先 声明,也不需要指定变量类型,它会自动根据所 赋予变量的值或对变量所进行的操作来确定变量 的类型;在赋值过程中,如果变量已存在, MATLAB语言将使用新值代替旧值,并以新的变 量类型代替旧的变量类型。 >>A=[1,2,3,4,5]; >>A=3; >>A=„I am a student in whut!‟ >>length(A)%返回一维数组A的长度
第一讲:MATLAB入门
第一节 MATLAB 基础知识 第二节 MATLAB编程
第一节 MATLAB 基础知识
1. “演草纸”式的计算器
“指令提示输入符”: >> 【例1】 计算33+12的值
先在指令窗中输入: 33+12 然后按回车键 显示:ans = 45
【例2 】
[12 2 (7 4)] 32 的值 计算
(ii)数组-数组运算 当两个数组有相同维数时,加、减、乘、除、 幂运算可按元素对元素方式进行的,不同大小或维 数的数组是不能进行运算的.
设:a=[a1,a2,…,an], b=[b1,b2,…,bn] 则:a+b= [a1+b1,a2+b2,…,an+bn]
a.*b= [a1*b1,a2*b2,…,an*bn]
(2) 特殊矩阵的建立: a=[ ] 产生一个空矩阵,当对一项操作无结 果时,返回空矩阵,空矩阵的大小为零. b=zeros(m,n) c=ones(m,n) 产生一个m行、n列的零矩阵 产生一个m行、n列的元素 全为1的矩阵 d=eye(m,n) 产生一个m行、n列的单位矩阵
(3)矩阵中元素的操作
相关文档
最新文档