程序设计基础,画图2

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

• lookfor 命令允许用户通过完整的或部分 关键字来搜索要查找的内容 • who 和 whos 的作用是列出在 MATLAB 工作内存中驻留的变量名
• exist 命令用来查找或检查变量和函数的 存在性
2.2 MATLAB 程序设计语言基础
• MATLAB 语言的变量命名规则是: (1)变量名必须是不含空格的单个词; (2)变量名区分大小写;
矩阵的逻辑运算
• 逻辑变量:
– 当前版本有逻辑变量 – 对 double 变量来说,非 0 表示逻辑 1
• 逻辑运算(相应元素间的运算)
– – – – 与运算 A&C 或运算 A|C 非运算 ~A 异或运算 xor(A,C)
矩阵的比较运算
• 各种允许的比较关系 >, >=, <, <=, ==,~=, find(), all(), any() • 例:>> A A= 1 2 3 4 5 6 7 8 0 >> find(A>=5), %大于或等于5元素的下标 ans = 3 5 6 8
• 函数调用语句
[返回变量列表]=函数名(输入变量列表)
例:[a,b,c]=my_fun(d,e,f,c) • 冒号表达式 v=s1:s2:s3 该函数生成一个行向量v,其中s1是起始值, s2是步 长(若省略步长为1), s3是最大值。
例:用不同的步距生成 (0,p) 间向量。 >> v1=0:0.2:pi v1 = Columns 1 through 9 0 0.2000 0.4000 0.6000 1.0000 1.2000 1.4000 1.6000 Columns 10 through 16 1.8000 2.0000 2.2000 2.4000 2.8000 3.0000
• 矩阵除法
– 矩阵左除:AX = B,求 X – MATLAB 求解:X=A\B
• 若A为非奇异方阵,则 X=A-1B • 最小二乘解(若A不是方阵)
– 矩阵右除:XA = B,求 X – MATLAB求解:X=B/A
• 若A为非奇异方阵,则 X=BA-1 • 最小二乘解(若A不是方阵)
• 矩阵翻转
(3) “...”表示续行.
数值型数据结构
• 双精度数值变量 – IEEE标准,64位 (占8字节),11指数位,53 数值位和一个符号位 – – double( ) 函数的转换 • 其他数据类型 – uint8( ),无符号8位整形数据类型,值域为0 至255,常用于图像表示和处理。(节省存 储空间,提高处理速度) – int8( ), int16( ), int32( ),uint16( ), uint32( )
基本数论运算
下取整、上取整、四舍五入、离0近方向取整、最简有理数(、求模 的余数、最大公约数、最小公倍数、质因数分解、判定是否为质数
>> [a,m]=simple(P) % 返回化简方法为因式分解方 法,用 factor( ) 函数将得同样结果 a= (s+3)^2*(s+2)*(s+1)*(s+4)^3 m= factor
>> expand(P) ans = s^7+21*s^6+185*s^5+883*s^4+2454*s^3+3944*s^2+33 60*s+1152
0.8000
2.6000
>> v2=0:-0.1:pi %步距为负,不能生成向量,得 出空矩阵 v2 = Empty matrix: 1-by-0 >> v3=0:pi v3 = 0 1 2 3 >> v4=pi:-1:0 %逆序排列构成新向量 v4 = 3.1416 2.1416 1.1416 0.1416 >> v5=[0:0.4:pi,pi] v5 = 0 0.4000 0.8000 1.2000 1.6000 2.0000 2.4000 2.8000 3.1416
2.3 基本数学运算
矩阵的代数运算
• 矩阵表示
• 矩阵转置
– 数学表示 (若A有复数元素,先转置再取各元素共轭复数 值,Hermit转置)
• MATLAB 求解 B=A.’
C=A’
• 矩阵加减法 C=A+B
D=A-B
– 注意维数是否相等 – 注意其一为标量的情形
• 矩阵乘法
– 数学表示
– MATLAB 表示 C=A*B – 注意两个矩阵维数相容性
源自文库
解析结果的化简与变换
MATLAB 实现:
s1=simple(s) 从各种方法中自动选择最简格式 [s1,how]=simple(s) 化简并返回实际采用的化简方法 其中,s为原始表达式,s1为化简后表达式,how为 采用的化简方法。
• 其他常用化简函数(信息与格式可用 help命令得 出)
collect( ) expand( ) factor( ) numden( ) sincos( ) 合并同类项 展开多项式 因式分解 提取多项式的分子和分母 三角函数的化简
数学运算符号及标点符号
+ — * .* / ./ ^ .^ \ 加法运算,适用于两个数或两个同阶矩阵相加. 减法运算 乘法运算 点乘运算 除法运算 点除运算 乘幂运算 点乘幂运算 反斜杠表示左除.
数学运算符号及标点符号
(1)MATLAB的每条命令后,若为逗号或无标 点符号,则显示命令的结果;若命令后为分号 ,则禁止显示结果. (2)“%” 后面所有文字为注释.
第二章 MATLAB 语言程序设计基础
MATLAB 语言是当前国际上自动控制领域的首选 计算机语言,也是很多理工科专业最适合的计算机数学 语言。通过学习可更深入理解和掌握数学问题的求解思 想,提高求解数学问题的能力,为今后其他专业课程的 学习提供帮助。 MATLAB语言的优势: • • • • • MATLAB 语言的简洁高效性 MATLAB 语言的科学运算功能 MATLAB 语言的绘图功能 MATLAB 庞大的工具箱与模块集 MATLAB 强大的动态系统仿真功能
MATLAB支持的其它数据结构
• 字符串型数据:用单引号括起来 。 • 多维数组:是矩阵的直接扩展,多个下标。 • 单元数组:将不同类型数据集成到一个变 量名下面,用{}表示;例:用A{i,j}可表示 单元数组A的第i行,第j列的内容。 • 类与对象:允许用户自己编写包含各种复 杂详细的变量,可以定义传递函数。
>> B2=A([3,2,1],[2,3,4]) %提取3,2,1行、2, 3,4列构成子矩阵。 A = B2 = 1 2 3 4 6 7 8 3 4 5 6 4 5 6 5 6 7 8 2 3 4 7 8 9 0 >> B3=A(:,end:-1:1) %将A矩阵左右翻转,即最 后一列排在最前面。 B3 = 4 3 2 1 6 5 4 3 8 7 6 5 0 9 8 7
(3)变量名最多不超过19个字符;
(4)变量名必须以字母打头,之后可以是
任意字母、数字或下划线,变量名中
不允许使用标点符号
MATLAB 的保留常量
特殊变量 ans pi eps flops inf NaN i,j nargin nargout realmin realmax 取 值 用于结果的缺省变量名 圆周率 计算机的最小数,当和 1 相加就产生一个比 1 大的数 浮点运算数 无穷大,如 1/0 不定量,如 0/0 i=j= 1 所用函数的输入变量数目 所用函数的输出变量数目 最小可用正实数 最大可用正实数
• 变量替换
f1 subs( f , x1 , x ) * * * f1 subs( f ,{x1, x2 ,, xn },{x1 , x2 ,, xn})
* 1
其中,f为原表达式,用x*替换x得出新的。 例:求其 Taylor 幂级数展开
>> syms a b c d t; % 假设这些变量均为符号变量 >> f=cos(a*t+b)+sin(c*t)*sin(d*t); % 定义给定函数 f(t) >> f1=subs(f,{a,b,c,d,t},{0.5*pi,pi,0.25*pi,0.125*pi,4}) f1 = -1.0000
– – – – 左右翻转 bij ai ,m1 j 上下翻转 cij an1i , j 旋转 90o (逆时针) 如何旋转180o? B=fliplr(A) C=flipud(A) D=rot90(A)
>> D=rot180(A) ??? Undefined function or variable 'rot180'. >> D=rot90(rot90(A))
子矩阵提取
• 基本语句格式 B=A(v1,v2) v1、 v2分别表示提取行(列)号构成的向量。 例:>> A=[1,2,3,4;3,4,5,6;5,6,7,8;7,8,9,0] A= 1 2 3 4 3 4 5 6 5 6 7 8 7 8 9 0 >> B1=A(1:2:end,:) %提取全部奇数行、所有列。 B1 = 1 2 3 4 5 6 7 8
本章主要内容
• • • • • • • MATLAB 基本命令简介 MATLAB 程序设计语言基础 基本数学运算 MATLAB语言流程控制 MATLAB 函数的编写 二维图形绘制 三维图形绘制
2.1 MATLAB 基本命令简介
• MATLAB 通用命令
• Matlab常用的窗口帮助命令
• help 命令
MATLAB 的基本语句结构
• 直接赋值语句
赋值变量=赋值表达式 例:>> a=pi^2 a= 9.8696 例:表示矩阵 >> B=[1+9i,2+8i,3+7j;4+6j 5+5i,6+4i;7+3i,8+2j 1i] B= 1.0000 + 9.0000i 2.0000 + 8.0000i 3.0000 + 7.0000i 4.0000 + 6.0000i 5.0000 + 5.0000i 6.0000 + 4.0000i 7.0000 + 3.0000i 8.0000 + 2.0000i 0 + 1.0000i
符号型变量数据类型
• 符号型,sym(A), 常用于公式推导、解析解解法
– 符号变量声明
syms var_list var_props
例:syms a b real syms c positive
– 符号型数值可采用变精度函数求值 • vpa(A), 或 vpa (A,n) >> vpa(pi) ans = 3.1415926535897932384626433832795 >> vpa(pi,60) ans = 3.141592653589793238462643383279502884 19716939937510582097494
例: >> syms s; %定义符号 >> P=(s+3)^2*(s^2+3*s+2)*(s^3+12*s^2+48*s+64) P= (s+3)^2*(s^2+3*s+2)*(s^3+12*s^2+48*s+64) >> simple(P) % 一系列化简尝试,得出计算机认为 的最简形式 ans = (s+3)^2*(s+2)*(s+1)*(s+4)^3
矩阵乘方 – A 为方阵,求 – MATLAB 实现: F=A^x
• 点运算--矩阵对应元素的直接运算
数学表示 : MATLAB 实现: C=A.*B 例:>> A=[1,2,3;4,5,6;7,8,0]; >> B=A.^A B= 1 4 27 256 3125 46656 823543 16777216 1 >> C=A.*A C= 1 4 9 16 25 36 49 64 0
>> [i,j]=find(A>=5);[i,j] %显示行标,列标 ans = A= 3 1 1 2 3 2 2 4 5 6 3 2 7 8 0 2 3 >> all(A>=5) %某列元素全大于或等于5时,相 应元素为1,否则为0。 ans = 0 0 0 >> any(A>=5) %某列元素中含有大于或等于5时, 相应元素为1,否则为0。 ans = 1 1 1
直接输入 help, MATLAB 将列出所有的帮助
主题,每个帮助主题对应于 MATLAB搜索 路径中的一个目录;
help 后加帮助主题,可获得指定帮助主题的
帮助信息;
help 后加函数名;
help 后加命令名,将得到指定命令的用法;
• demo 命令
• helpwin 命令用于打开 MATLAB 的帮 助文件窗
相关文档
最新文档