MATLAB 语言程序设计基础(1)
第三章 matlab程序设计基础
3. 程序控制流 3.多分支if语句
• 多分支if语句格式为:
if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else 语句组m+1
end
3. 程序控制流
• 例 输入一个字符,若为大写字母,则输出其后继字符,若为 小写字母,则输出其前导字符,若为数字字符则输出其对应 的数值,若为其他字符则原样输出。 – 程序如下:
c=input('请输入一个字符','s'); if c>='A' & c<='Z' disp(setstr(abs(c)+1)); elseif c>='a'& c<='z' disp(setstr(abs(c)-1)); elseif c>='0'& c<='9' disp(abs(c)-abs('0')); else disp(c); end
分类:脚本文件(Script File)和函数文件(Function File)。 主要区别。
1. M文件 脚本文件
没有输入和输出 由一系列指令组成 可在命令窗口直接运行 产生的所有变量存储在workspace中。 例 test.m。
1. M文件 例 脚本M文件实例
脚本M文件实例,查找10 ~100所有素数。
1. M文件
• 函数文件examp.m: function fout=charray(a,b,c) %举例说明函数文件名与函数名不同 if nargin==1 fout=a; elseif nargin==2 fout=a+b; elseif nargin==3 fout=(a*b*c)/2; end • 命令窗口: x=[1:3];y=[1;2;3]; examp(x) examp(x,y') examp(x,y,3)
第二章_MATLAB语言基础_第1节-赵亦欣
第2章 MATLAB语言基础
【例2.8】 表达式语句。 >> sqrt(2)*exp(-1*3) ans = 0.0704 >> 8*3+6/4 ans = 25.5000
表达式语句 运算结果 执行下一条 表达式语句 后,结果将 被刷新
第2章 MATLAB语言基础
第2章 MATLAB语言基础
2.1 基础知识
2.1.3 变量和语句
变量名区分字母大小写;不超过31个字 符,31个以后的字符将被忽略,字符之间不 能有空格;必须以字母打头,之后可以是任意 字母、数字或下画线;不允许使用标点符号。
第2章 MATLAB语言基础
MATLAB的一条命令行就是一条语句,
格式与书写数学表达式相近。 在命令窗输入语句,该语句可被解释运 行并给出运行结果。
第2章 MATLAB语言基础
(1)永久变量不能用clear命令清除; (2)永久变量不响应Who, Whos命令; (3)永久变量可以等于表2-1中的值; (4)被赋值的永久变量,在clear命令清除内 存或命令窗关闭再打开后,将被设为默认值;
(5)允许被0除。
第2章 MATLAB语言基础
2.1 基础知识
第2章 MATLAB语言基础
【例2.11】复数矩阵的生成及运算。 >> A=[1 2; 3 4]+[5 6; 7 8]*I % 复数矩阵的输入。 分别由实部矩阵和虚部矩阵组合而成 A= 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i >> B=[1+2i 3+4i; 5+6i 7+8i] % 复数矩阵的输入。 直接由复数构成矩阵 B= 1.0000 + 2.0000i 3.0000 + 4.0000i 5.0000 + 6.0000i 7.0000 + 8.0000i >> C=A*B % 复数矩阵相乘。 复数矩阵乘法, 1.0e+002表 示标量100,矩阵运算中,存在直 C= 角坐标和极坐标之间的转换 1.0e+002 * -0.3500 + 0.4900i -0.5100 + 0.7700i -0.3900 + 0.7700i -0.5500 + 1.2100i
MATAB程序设计基础重要基础知识点总结
MATAB程序设计基础重要基础知识点总结(全)MATAB是一种高级的数值计算和科学计算软件,具备强大的矩阵运算能力。
以下是MATLAB的重要基础知识点:一、变量和数据类型了解如何定义变量、使用不同的数据类型(例如数值型、字符串型、逻辑型)以及它们之间的转换。
1.数值型数据类型包括整数(integers)、浮点数(floats)和复数(complex numbers)。
可以使用不同的精度和符号位来定义这些数据类型。
2.字符串数据类型表示一个或多个字符组成的文本。
字符串在MATLAB中用单引号或双引号括起来,例如'hello' 或"world"。
3.逻辑型数据类型只能取两个值之一,即true(真)或false(假)。
在MATLAB中,逻辑值通常用于控制流程和条件判断。
4.矩阵和数组型数据类型MATLAB中最基本的数据结构是矩阵和数组。
通过向量、矩阵和多维数组来表示和操作数据。
可以使用预定义的函数或运算符来创建、访问和处理这些数据类型。
5.结构体数据类型可以用于将不同类型的数据组合在一起。
结构体可以由不同类型的字段组成,每个字段都有自己的名称和值。
6.元胞数据类型可以容纳不同类型的元素,并且每个元素可以是不同的大小和形状。
元胞数组在MATLAB中常用于存储和传递异构数据。
7.函数和类数据类型MATLAB中还可以定义自己的函数和类,这些数据类型可以对数据进行封装和操作。
二、数组和矩阵操作掌握创建数组和矩阵的方法,并了解常用的矩阵运算,如加法、减法、点乘、叉乘等。
创建数组和矩阵:可以使用方括号[] 或函数来创建数组和矩阵。
例如,a = [1, 2, 3] 可以创建一个包含整数1、2 和 3 的行向量;b = [4; 5; 6] 可以创建一个包含整数4、5 和 6 的列向量;c = [1, 2; 3, 4] 可以创建一个2x2 的矩阵。
访问数组和矩阵元素:可以使用下标(索引)来访问数组和矩阵中的元素。
MATLAB基础及程序设计
一、变量和数值
➢Matlab的变量有一定的命名规则: (1)变量名区分大小写。’A’与’a’是不同的变量。 (2)变量名不能超过63个字符。 (3)变量名必须以字母开头。 (4)关键字(如if,while等)不能作为变量名。 (5)有一些系统自动定义的特殊变量,如pi,inf,i等。
➢特殊变量 ans: 用于结果的缺省变量名 pi: 圆周率 eps:计算机的最小数 inf:无穷大
>>syms a b c x f2=a*x^2+b*x+c 上面的语句即创建了符号变量a,b,c,x,又创建了符号表达 式,f1,f2符号表达式相同。
二、符号表达式的代数运算: 特点: 1、传统的数值运算由于计算机的有效位数的 限制,会产生误差。符号运算则可以避免。
2、符号运算可以得出完全的封闭解或任意精 度的数值解。
六、代数方程组的求解
[例] x1+x2=5 2x1+x2=7 x1+2x3=4
求解x1,x2。 a=[1 1 0;2 1 0;1 0 2];b=[1;5;5]; x=a\b x=
2 3
七、多项式拟合 多项式拟合是用一个多项式来逼近一组给定的 数据,在数据分析上是常用的方法,使用polyfit 函数来实现.拟合的准则是最小二乘法。 [例] x0=0:0.1:1;
2、用MATLAB函数创建 + rand —— 随机矩阵 >>rand(m,n)
+eye —— 单位矩阵 >>eye(m,n)
+zeros ——全部元素都为0 的矩阵
+>>zeros(m,n) +ones ——全部元素都为1的 矩阵
+ >>ones(m,n)
控制系统仿真_薛定宇第二章_MATLAB语言程序设计基础
控制系统仿真与CAD 国家级精品课程
2014-12-31
24/70 24
2.4.4 匿名函数与inline函数
不用编写*.m,定义函数的方法
可以动态地定义函数,在科学运算中有用 二者功能重复,后者远差于前者,不再使用
匿名函数: 举例
控制系统仿真与CAD 国家级精品课程
2014-12-31
控制系统仿真与CAD 国家级精品课程
2014-12-31
3/70 3
2.1.1 常量与变量
常量(保留字符串)
eps: 机器的浮点运算误差限,默认值 i和j:虚数单位,-1的平方根,i=sqrt(-1) Inf: 无穷大量,-Inf为负无穷大 NaN:不定式(Not a Number) pi:圆周率p的双精度浮点表示
25/70 25
2.5 二维图形绘制
可以绘制出各种二维曲线 可以由数据绘图,也可以由格式绘图 本节主要内容
基本二维图形绘制语句 带有其他选项的绘图函数 二维曲线的标注方法 在MATLAB图形上添加文字标注 特殊图形绘制函数及举例 隐函数的曲线绘制
控制系统仿真与CAD 国家级精品课程
符号型数据结构
syms 命令申明符号变量
控制系统仿真与CAD 国家级精品课程
2014-12-31
5/70 5
vpa(A) 显示符号变量
例2-1 显示e的前300位 其他数据结构
int8() 、int16() 、int32() 、uint16() 和 uint32() 字符串型数据:MATLAB字符串是用单引号括起来的 多维数组:三维数组是一般矩阵的直接拓展。 单元数组:多变量系统的频域响应数据存储 类与对象:传递函数对象、状态方程对象
MATLAB21
3. 矩阵元素的删除
删除操作就是简单地将其赋值为空矩阵(用[]表示)。
4. 生成大矩阵
在MATLAB中,可以通过方括号“[]”实现将小矩阵联 接起来生成一个较大的矩阵。
5. 矩阵的翻转
triu(X) 产生X矩阵的上三角矩阵,其余元素补0。 tril(X) 产生X矩阵的下三角矩阵,其余元素补0。 flipud(X) 使矩阵X沿水平轴上下翻转。 fliplr(X) 使矩阵X沿垂直轴左右翻转。 flipdim(X,dim) 使 矩 阵 X 沿 特 定 轴 翻 转 。 dim=1 , 按 行 维 翻 转 ; dim=2,按列维翻转。 rot90(X) 使矩阵X逆时针旋转900
2. 子矩阵块的产生 (1)子矩阵是从对应矩阵中取出一部分元素构 成,用全下标和单下标方式取子矩阵。 如a([1 3],[2 3]) ,a([1 3;2 6]) 等。 (2)利用冒号表达式获得子矩阵 ①A(:,j)表示取A矩阵的第j列全部元素;A(i,:) 表示A矩阵第i行的全部元素;A(i,j)表示取A矩 阵第i行、第j列的元素。 ②A(i:i+m,:)表示取A矩阵第i~i+m行的全部元 素;A(:,k:k+m)表示取A矩阵第k~k+m列的全 部元素,A(i:i+m,k:k+m)表示取A矩阵第i~i+m 行内,并在第k~k+m列中的所有元素。
例 2-1 计算表达式的值,并将结果赋给变量x, 计算表达式的值,并将结果赋给变量x 然后显示出结果。 然后显示出结果。 MATLAB命令窗口输入命令 命令窗口输入命令: 在MATLAB命令窗口输入命令:
>>x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i) x=(5+cos(47*pi/180))/(1+sqrt(7
第1章matlab基础知识
2.Edit菜单
Undo:取消输入。 Redo:重新输入。 Cut:剪切。 Copy:复制。 Paste:粘贴。 Paste to Workspace:将所选内容粘贴到 工作空间。 Select All:全选。 Delete:删除。 Find:寻找。 Find Files:在指定的文件或路径中寻找。 Clear Command Window:清除命令窗口 中的显示。 Clear Command History:清除命令历史窗 口中的显示。 Clear Workspace:清除工作空间变量。
在命令窗口中运行的命令,都会被保留在Command History(命令历史)窗口中,并且标明指令运行 的日期和时间。
1.3.5 Workspace
用于存储各种变量 和结果的内存空间 ,其中显示了工作 空间中所有变量的 名称、大小、最大 及最小值,可以对 变量进行观察、编 辑、保存和删除等 操作。
(2)直观
程序语言设计符合人们的思维习惯和数学表达方式。 丰富的二、三维图形及动画,对计算结果进行可视化 显示,给用户以直观的认识。 Simulink的仿真环境,省去了用户画图布线的烦恼。
(3)简单
丰富的函数库和工具箱,使用户不必进行具体代码的 编写,只需调用简单的函数指令,就可以执行任务操 作,解决问题。 所有数值对象都默认以双精度浮点类型数组存储,无 须用户进行数据类型的声明和转换。
Save Layout:保存当前布局。 Organize Layout:组织布局。 Command Window:显示或隐藏命令窗口。 Command History:显示或隐藏命令历史窗口。 Current Folder:显示或隐藏当前文件夹。 Workspace:显示或隐藏工作空间。 Help:显示或隐藏帮助。 Profiler:显示或隐藏性能分析器。 File Exchange:用于实现文件的切换。 Editor:显示或隐藏编辑器。 Figures:显示或隐藏图形显示窗口。 Web Browser:打开网络浏览器。 Variable Editor:用于显示变量编辑器。 Comparison Tool:打开对照工具。 Toolbars:显示或隐藏工具栏。 Titles:显示或隐藏窗体标题。
1第一章 Matlab语言概述
(Ⅰ)基础篇第一章 Matlab语言概述§1.语言特点MATLAB是Mathworks公司于20世纪80年代推出的数值计算软件。
得到了广泛的应用。
MATLAB的全称是Mateix Laboratory,意思是矩阵实验室。
它是以矩阵运算为基础的新一代程序语言。
MATLAB是集数学运算、图形处理、程序设计和系统建模为一体的著名编程语言软件,它具有功能强大、使用简单等优点,是进行科学研究和工程实践的有力工具。
与Fortran和C相比,MATLAB语句更简洁、明了,更加符合人们的思维习惯。
并且还具有良好的数据可视化功能。
MATLAB包括两部分:基本部分-主要指数据计算和可视化功能。
扩展部分-主要指工具箱。
§2 基本操作和简单语句输入1. 简单语句输入(简单计算器用法)例1:计算a⨯y÷⨯=(a = 2,b =3,c = 5 )+acbb[程序] 在命令窗口输入>> a=2;b=3;c=5;>> y=a*b+c*b/a 回车[输出] y =13.5000例2:计算64(tan3⨯+45)/2760cos[程序] >> (tan(pi/4)+cos(pi/3))*27^(1/3)/sqrt(64)ans =0.56252. 变量表达式数值(1)变量* matlab语句一般形式为:变量=表达式(或数),若变量和“=”省略,输出时自动建立“ans”默认变量。
* 对大小写敏感,如sqrt(平方根)对,而SQRT,Sqrt全错。
* 变量名第一个字符必须是英文字母,最多可包含31个字符,(含英文、数字、下连符)。
不得包含空格和标点。
* 系统遇到一个新变量名时,它会自动生成变量,若该变量早已存在,系统会自动更新内容。
表1-1 默认预定义变量(永久变量)例3:无穷大的使用>> x =1/0Warning: Divide by zero.x =Inf* 在MATLAB中这样的操作不会引起程序执行中断,只是在给出警告信息的同时,用一个特殊的符号Inf来表示。
MATLAB语言程序设计基础
3.2 matlab语言基本运算及输入输出
3.2.5 输入与输出语句
input A=input(提示字符串)要求输
入矩阵
A=input(提示字符串,‘s’) 要求字符串eg:
n=input('how much')
n=input('ho第w23页m/共4u1页ch','s')
3.2 matlab语言基本运算及输入输出
关系运算和逻辑运
算
表3-6 关系运算和逻辑运算函数
函数 any all find
exist isnan
意义 逻辑条件任何一个
逻辑条件全部 寻找逻辑值的向量元素下 标
检查某变量是否存在 检查非数值量
函数 finite isempty isstr
strcmp
随机数元素矩阵 设三维绘图基底坐
第5页/共41页
单位矩阵
3.1.3构造多维数组
cat( ) a=cat(n,a1,a2,….) n:多维函数的维数 n=1:
cat(a1,a2,a3..)=[a1;a2;a3…] n=2:
cat(a1,a2,a3..)=[a1,a2,a3…] n=3: 图3-1示
重新定义维数
end 表示某一维末尾元素下标
2、复数矩阵: b=[1 2;3 4]+i*[5 6;7 8] b=[1+5i 2+6i;3+7i 4+8i]
第3页/共41页
3、空矩阵[]
0×0阶
与clear不同之处:clear删除变量
[]删除矩阵中的元素
A(:,[2,3])=[] 第2,3列元素删除
函数 abs angle sqrt real imag conj round fix
MATLAB程序设计基础
MATLAB程序设计基础MATLAB是一款由MathWorks公司开发的科学计算与数据可视化软件,广泛应用于工程学、数学、物理学、生物学以及金融等领域。
本文将介绍MATLAB的程序设计基础,包括变量和数据类型、运算符、控制流和函数等重要概念。
一、变量和数据类型在MATLAB中,变量是用来存储和处理数据的容器。
变量可以是不同的数据类型,包括整数、浮点数、字符、逻辑值等。
我们可以使用等号将数值或表达式赋给一个变量。
例如,可以将整数10赋给变量x:x=10;在MATLAB中,数据类型是动态的,这意味着变量的数据类型可以根据上下文自动更改。
例如,如果将浮点数赋给变量x,其数据类型将从整数变为浮点数。
二、运算符MATLAB提供了各种运算符用于数据处理和计算。
常用的数学运算符包括加法(+)、减法(-)、乘法(*)、除法(/)等。
此外,它还提供了幂运算符(^)和取余运算符(mod)等。
运算符在MATLAB中与其他高级编程语言相似。
三、控制流在程序设计中,控制流用于确定程序执行的顺序。
MATLAB中有三种主要的控制流结构:顺序结构、条件结构和循环结构。
顺序结构是指按照编写顺序从上至下执行代码的方式。
条件结构是根据条件的真假来决定程序的执行路径。
在MATLAB中,常用的条件结构有if语句和switch语句。
例如,可以使用if语句判断一个数是否为正数:if x > 0disp('x is positive');elseif x < 0disp('x is negative');elsedisp('x is zero');end循环结构是重复执行一段代码直到满足特定条件为止。
在MATLAB中,常用的循环结构有for循环和while循环。
例如,可以使用for循环输出1到10之间的所有整数:for i = 1:10disp(i);end四、函数在MATLAB中,函数是一段执行特定任务并返回结果的代码。
MATLAB程序设计基础教程
MATLAB程序设计基础教程MATLAB程序设计是一门广泛应用于科学和工程领域的高级编程语言。
它具有强大的数值计算和数据可视化功能,被广泛用于数据分析、模拟建模、信号处理等领域。
本文将介绍MATLAB程序设计的基础知识和常用技巧,帮助读者快速上手并掌握该编程语言。
一、MATLAB环境搭建在开始MATLAB编程之前,首先需要正确搭建MATLAB运行环境。
你可以从MathWorks官网下载和安装最新版本的MATLAB软件,根据安装向导进行配置。
安装完成后,你就可以打开MATLAB并开始编写代码了。
二、MATLAB基本语法1. 变量和数据类型在MATLAB中,可以使用变量来存储数据。
变量的命名需要满足一定规则,比如变量名只能包含字母、数字和下划线,不能以数字开头等。
MATLAB支持不同的数据类型,包括数字、字符串、逻辑值等。
2. 数组和矩阵MATLAB中的核心数据结构是数组和矩阵。
你可以使用一维或多维数组来存储和处理数据。
MATLAB提供了丰富的数组操作函数和运算符,可以进行元素访问、切片、矩阵运算等。
3. 控制流程MATLAB支持常用的控制流程语句,如条件语句(if-else)、循环语句(for、while)等。
这些语句可以帮助你根据不同的条件执行不同的代码块,或者重复执行一段代码。
三、MATLAB函数和脚本1. 函数MATLAB中可以编写自定义函数,以方便地实现特定功能。
函数是由输入参数和输出参数组成的可重复使用的代码块。
你可以在函数中进行各种操作,如计算、输出、图形绘制等。
2. 脚本除了函数,你还可以编写脚本文件来执行一系列MATLAB命令。
脚本文件通常用于较短的代码片段,不需要提供输入和输出参数。
你可以通过运行脚本文件一次性执行其中的命令。
四、MATLAB图形界面MATLAB提供了强大的图形界面(GUI)工具,用于可视化数据和交互式操作。
你可以通过GUI工具箱创建和定制各种图形,如散点图、曲线图、柱状图等。
MATLAB程序设计基础教程(刘国良)-第1章
第1章 MATLAB基础
如果要查看以前的变量值,但忘记了该变量名,则输入 who即可查看曾经使用过的变量名,如:
>> who Your variables are: grade1 grade2 grade3 grade4 total 如果要查看以前变量值的详细信息,输入whos即可。
第1章 MATLAB基础
第1章 MATLAB基础
MATLAB具有以下缺点: (1) 运行效率较低。由于MATLAB是一种合成语言,因此 与一般的高级语言相比,用它编写的程序其运行时间往往要长 一些。 (2) 价格昂贵。
第1章 MATLAB基础
3.应用程序接口 由于MATLAB的代码编译器采用伪编译的方式,因此在 MATLAB中编写的程序无法脱离MATLAB的工作环境而独立运行。 针对这个问题,MATLAB提供了应用程序接口,允许MATLAB与 其他应用程序进行数据交换,一般来说,按目的可将它们分为 以下三种: (1) MEX文件。MEX文件作为一种动态链接库文件,必须 通过在MATLAB的工作环境内调用才能运行。 (2) MAT文件。MAT文件用于数据交换,不能利用MATLAB 提供的功能来完成计算任务。MAT文件由SAVE命令生成,由 LOAD命令调用。 (3) 拓广MATLAB的应用范围和应用手段的开发应用程序。 这是MATLAB引擎应用程序,是一种可以独立执行的应用程序, 但在应用程序执行时,将在后台启动一个MATLAB进程,用于
4.当前文件夹(Current Folder)窗口 当前文件夹窗口会显示当前用户工作的文件夹所在的路径。 如果用户改变文件的路径或所在文件夹,则当前文件夹窗口会 显示新的路径和文件夹。 在命令窗口中输入cd命令,并按Enter键确认,即显示当 前MATLAB工作所在目录: >> cd D:\My Documents\MATLAB 在命令窗口中输入dir命令,并按Enter键确认,即显示 当前MATLAB工作所在目录中的内容。
MATLAB程序设计第一讲
• 2.lookfor命令 help命令只搜索出那些关键字完全匹配的结 果,lookfor命令对搜索范围内的M文件进 行关键字搜索,条件比较宽松。 lookfor命令只对M文件的第一行进行关键 字搜索。若在lookfor命令加上-all选项,则 可对M文件进行全文搜索。
2.绘图功能 MATLAB提供了两个层次的绘图操作:一 种是对图形句柄进行的低层绘图操作,另 一种是建立在低层绘图操作之上的高层绘 图操作。 利用MATLAB的高级图形命令可以轻而易 举地绘制二维、三维乃至四维图形,并可 进行图形和坐标的标识、视角和光照设计、 色彩精细控制等等。
3.编程语言 MATLAB具有程序结构控制、函数调用、 数据结构、输入输出、面向对象等程序语 言特征,而且简单易学、编程效率高。 4.MATLAB工具箱 MATLAB包含两部分内容:基本部分和各 种可选的工具箱。 MATLAB工具箱分为两大类:功能性工具 箱和学科性工具箱。
1.5 变量和数据操作
1.5.1 变量与赋值 1.变量命名规则 (i).变量名必须是以字母开头,后可接字 母、数字或下划线; (ii). 变量名最多不超过63个字符; (iii).变量名严格区分字母的大小写。
2.赋值语句 (1) 变量=表达式 (2) 表达式 其中表达式是用运算符将有关运算量连接 起来的式子,其结果可以是一个数值,也 可以是一个矩阵。 • MATLAB书写表达式的规则与“手写算式” 差不多相同。 • 如果一个指令过长可以在结尾加上...(代表 此行指 令与下一行连续)。
高等应用数学问题的MB求解习题参考解答
else, y=1; end else
error(’n must be positive integer.’) end 例如,n = 10 可以求出相应的项为
>> fib(10) 现在需要比较一下递归实现的速度和循环实现的速度 >> tic, fib(20), toc
>> t=[0,120,240,0]*pi/180; % 变换成弧度 xxx=[]; yyy=[]; for i=0:5:360 tt=i*pi/180; xxx=[xxx; cos(tt+t)]; yyy=[yyy; sin(tt+t)]; end
plot(xxx’,yyy’,’r’), axis(’square’)
使用间接方法,以加大传递误差。
11 下面给出了一个迭代模型
xk+1 = 1 + yk − 1.4x2k yk+1 = 0.3xk
写出求解该模型的 M-函数,如果取迭代初值为 x0 = 0,y0 = 0,那么请进行 30000 次迭代求出 一组 x 和 y 向量,然后在所有的 xk 和 yk 坐标处点亮一个点 (注意不要连线),最后绘制出所 需的图形。提示 这样绘制出的图形又称为 Henon 引力线图,它将迭代出来的随机点吸引到一 起,最后得出貌似连贯的引力线图。
③利用递归调用的方式编写此函数。
【求解】 假设 fib(n) 可以求出 Fibonacci 数列的第 n 项,所以对 n 3 则可以用 k=fib(n − 1)+fib(n − 2) 可以求出数列的 n + 1 项,这可以使用递归调用的功能,而递归调用的出口为 1。综上,可以编写出 M-函数。
Matlab入门-1:基础
3、利用数据文件建立指定矩阵
4、利用已建好的矩阵建立更大的矩阵
1.直接输入法
a.将矩阵的所有元素用方括号括起来,按矩阵行的顺序输入 各元素,同一行的各元素之间用空格或逗号分隔,不同行的元 素之间用分号分隔。如,输入命令: A = 1 2 3 >>A=[1,2,3;4,5,6;7,8,9] 4 5 6 7 8 9 b.矩阵元素也可以是表达式,MATLAB将自动计算结果。如: >>B=[10,5-sqrt(7),sin(pi/2);7,4*8,abs(-7)]
(5)全局变量 需要某个变量作用于多个函数上时,可选择全局变量; 使用前声明,作为约定俗成的规则,Matlab程序员应尽 量用大写字母写全局变量。
如:
Global E;E=2.71828
2、变量的管理
(1)内存变量的显示与删除 显示在MATLAB工作空间中已经驻留的变量名清单。 >>who >>whos 区别:whos在给出驻留变量名的同时,还给出它们的维数、 所占字节数以及变量的类型。 删除MATLAB工作空间中的变量 >> clear MATLAB工作空间窗口专门用于内存变量的管理。 变量编辑器如图
第四节 MATLAB的变量和数据操作
1、变量与赋值
2、变量的管理
3、数据的输出格式
1、变量与赋值
(1)变量命名 在MATLAB 7.X中,变量名是以字母开头,后接字母、数字或 下画线的字符序列,最多63个字符。例如x、x_1、xy12 在MATLAB中,变量名区分字母的大小写。例如addr、Addr 和ADDR表示3个不同的变量。 (2)赋值语句 MATLAB赋值语句有两种格式: a)变量=表达式, 将表达式的值赋给左边的变量 b)表达式, 将表达式的值赋给MATLAB的预定义变量ans (3)编辑规则 a)在语句的最后加分号,那么,MATLAB仅仅执行赋值操作, 不再显示运算的结果。 b)注释以%开头。
MATLAB基础
特点:简洁、智能化、解释方式工作,键入程序立即
得出结果。
难点:函数较多,常用几百个。
MATLAB程序的基本数据单元是数组。 一个数组是以行和列组织起来的数据集合,并且拥有一个 数组名。 数组中的单个数据是可以被访问的,访问的方法是数组名 后带一个括号,括号内是这个数据所对应行标和列标。 标量在MATLAB中也被当作数组来处理——它被看作只有一 行一列的数组。 数组可以定义为向量或矩阵。 向量一般来描述一维数组,而矩阵往往来描述二维或多维 数组。
(2)系统默认的固定变量
(3)字符变量:必须用单引号括起来 a=‘happy’ (4)数值变量:b=365
2.数值
常用设置输出格式的命令为: format short 2位整数,4位小数 format long 16位十进制数
3.矩阵
MATLAB进行数据处理和运算的基本元素 标量:看做1*1的矩阵
2 矩阵的运算
矩阵运算:按矩阵的运算规则进行。 数组运算:按数组元素逐一进行。 算术运算符优先级: 表达式从左到右的顺序进行运算。 指数运算的优先级最高; 乘法和除法次之,乘法和除法相同; 加法和减法的优先级最低,加法和减法相同; 括号可以改变优先级顺序。
注意:在MATLAB中,可以对矩阵进行数组运算,这时是
注意:பைடு நூலகம்、B的行数必须相等。 数组右除的运算符为./,A/B 数组左除的运算符为.\,B/A
例: d=[1 2 3;4 5 6;7 8 9] d./2 d.\2
(5)共轭转置
运算符为’ 例: f=[1+i,1+2i],求f’ f.’
Examples
x=[1;2;3],y=[4;5;6],求 x’ y’ x+y x-y x+2 x-2 x*y x.*y x’*y x’.*y x*y’ x.*y’ x*2 x.*2 x\y x.\y 2\x 2./x x/y x./y x/2 x./2 x^y x.^y x^2 x.^2 2^x 2.^x
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
%第二章MATLAB 语言程序设计基础% % MATLAB 基本命令简介% MATLAB 程序设计语言基础% 基本数学运算% MATLAB语言流程控制% MATLAB 函数的编写% 二维图形绘制% 三维图形绘制% 二维图形% 基本平面% plot% fplot%f(x)%fplot('tanh',[-2 2])% loglog%双对数图形% semilogx%x轴对数图形% semilogy%zoom%meshgrid% 特殊平面%polar%bar%barh%compass%comet%errorbar%feather%hist 二维直方图%histc 直方图记数%rose 角度直方图%stairs%stem 柄形图%stem3%pie 饼形图% 注释命令% grid% gtext% text% legend% title% xlabel,ylabel% 三维图形%% 三维曲线,面填色命令% comet3 三维彗星% fill3% 三维图形等高线%clabel 二维等高线图中添加高度标签% [x,y] = meshgrid(-2:.2:2);% z = x.*y.*exp(-x.^2-y.^2);% [C,h] = contour(x,y,z);% clabel(C,h);%contour%contourc 低级等高线图形计算命令。
计算等高线矩阵c %contour3 三维空间等高线图%contourf 填充二维等高线图%contour,contour3和contourf%pie3% 曲线与网格图%mesh%surf%surfc%surfl%waterfall% [X,Y,Z] = sphere(30);% %[X,Y,Z] = peaks(30);% waterfall(X,Y,Z)% surf(X,Y,Z)% cylinder% sphere% 其他表现形式% pcolor 伪彩色% quiver 矢量图或速度图% slice% axis% hidden 显示隐含线条% shading 颜色色调属性% caxis 颜色坐标轴刻度% [X,Y,Z] = peaks(30);% C = Z;% mesh(peaks)% hidden off% caxis([-1 1])% view% viewmtx 视点转换矩阵% surfnorm 显示三维曲面法线% [x,y,z] = cylinder(1:10);% surf(x,y,z)% figure% surfnorm(y,x,z)% axis([-12 12 -12 12 -0.1 1])% 通用函数% 图形对象句柄% figure% line% patch% surface% image% uicontrol% uimenu% 轴和控制命令% axes% cla% gca% % 图形句柄操作% gco 返回当前对象的句柄% get 获取对象属性% set% reset% delete% findobj%% % 图形窗口控制% subplot% hold% gcf% clf% close% newplot%% % 颜色与光照模式% % 颜色控制% colormap 设置或获取当前色图% bone 淡兰色的灰度刻度化的色图% cool 阴影的青色和品红的色图% copper 线性铜色色图% flag 红、白、兰、黑的色图% gray 线性灰度化的色图% hot 黑、红、黄、白的色图% hsv 色度-饱和度值的色图% jet% pink 带柔和阴影粉红色图% prism 三棱镜色图%% % 色图控制% brighten 增亮或变暗色图% colorbar 指定颜色刻度的颜色条% contrast 提高灰度色图的对比度% rgbplot 画出色图% diffuse 漫反射率% specular 镜面反射率% surfl 三维带光照模式的阴影图%循环结构%for i=V%%end% while()%% end%选择结构% if()%% elseif()%% else%% end% switch% case%% case%% otherwise%% end% try,% catch,% end%Matlab内部的每一个数据元素都是用双精度数(double)来表示和存储的。
%变量输出时用户可以用format命令设置或改变输出格式。
%符号型数值可采用变精度函数求值vpa(A), 或vpa (A,n)%find(), all(), any()%[s1,how]=simple(s) 化简并返回实际采用的化简方法其中,s为原始表达式,s1为化简后表达式,how为采用的化简方法。
%subs(B,old ,new)% function [d,e]=jia(m,n)% c=m+n;% d=m-n;% e=m*n;%% end% function A=myhilb(m,n)% %产生A=MYHILB(N,M)或A=MYHILB(N);% if nargin==1% m=n;% else% if nargin==0 | nargin>2% error('Wrong number of input arguments.'); % end% end%% A1=zeros(m,n);% for i=1: m% for j=1:n% A1(i,j)=1/(i+j-1);% end% end% if nargout>1% error('Too many output arguments.');% end% if nargout==1% A=A1;% else% if nargout==0% disp(A1);% end% end% function k=my_fact(n)% if nargin~=1, error('输入变量个数错误,只能有一个输入变量'); end % if nargout>1, error('输出变量个数过多'); end% if abs(n-floor(n))>eps | n<0 % 判定n 是否为整数% error('n 应该为非负整数');% end% if n>1 % 如果n>1, 进行递归调用% k=n*my_fact(n-1);% elseif any([0 1]==n) % 0!=1!=1% k=1;% end% %syms a b x y% %[x,y]=solve(a*x-b*y-1,a*x+b*y-5,x,y)% x=0:0.05:2*pi% y=sin(x)% %plot(x,y)% polar(x,y)% hold% stem(x,y)% A=[3 5 7 10];% x1=[1 2];% A(x1)% A=[3 5 7 10];% x1=[1 2];% A(x1)% x2=[true false true];% A(x2)% x3=[1.2 2.3];% A(x3)% function [m,s]=findsum( k) % s=0; m=0;% while (s<=k)% m=m+1;% s=s+m;% end%k=4,1;m1,s1;2,m2,s3;3,m3,s6% a=[1,2,8 ;1 2,4]% [X,Y,Z]=peaks(30);% surf(X,Y,Z)% axis([-3,3,-3,3,-10,10])% axis off;% shading interp;% colormap(hot);% m=moviein(20);% for i=1:20% view(-37.5+24*(i-1),30)% m(:,i)=getframe;% end% movie(m,2);% %syms a b x y% %[x,y]=solve(a*x-b*y-1,a*x+b*y-5,x,y) % x=0:0.05:2*pi% y=sin(x)% %plot(x,y)% polar(x,y)% hold% stem(x,y)% A=[3 5 7 10];% x1=[1 2];% A(x1)% A=[3 5 7 10];% x1=[1 2];% A(x1)% x2=[true false true];% A(x2)% x3=[1.2 2.3];% A(x3)% function [m,s]=findsum( k) % s=0; m=0;% while (s<=k)% m=m+1;% s=s+m;% end%k=4,1;m1,s1;2,m2,s3;3,m3,s6% a=[1,2,8 ;1 2,4]% [X,Y,Z]=peaks(30);% surf(X,Y,Z)% axis([-3,3,-3,3,-10,10])% axis off;% shading interp;% colormap(hot);% m=moviein(20);% for i=1:20% view(-37.5+24*(i-1),30)% m(:,i)=getframe;% end% movie(m,2);%第三章微积分问题的计算机求解%第三章,微积分问题的计算机求解%% 微积分问题的解析解% 函数的级数展开与级数求和问题求解% 数值微分% 数值积分问题% 曲线积分与曲面积分的计算%3.1 微积分问题的解析解%simple() pretty()%极限问题的解析解% 格式1:L= limit( fun, x, x0)% 格式2:L= limit( fun, x, x0, ‘left’或‘right’)% 格式:L1=limit(limit(f,x,x0),y,y0)或L1=limit(limit(f,y,y0), x,x0)% syms x a b;% f=x*(1+a/x)^x*sin(b/x);% L=limit(f,x,inf)% x=-0.1:0.001:0.1;% y=(exp(x.^3)-1)./(1-cos(sqrt(x-sin(x))));% plot(x,y,'-',0,12,'o')%函数导数的解析解%y=diff(fun,x) %求导数%y= diff(fun,x,n) %求n阶导数%f=diff(diff(f,x,m),y,n)%f=diff(diff(f,y,n),x,m)%J=jacobian(Y,X)%F=-diff(f,xj)/diff(f,xi) 隐函数求导% syms x;%f=sin(x)/(x^2+4*x+3);% f1=diff(f);% syms x y;% z=(x^2-2*x)*exp(-x^2-y^2-x*y);% zx=simple(diff(z,x))% zy=diff(z,y)% [x1,y1]=meshgrid(-3:.2:3,-2:.2:2);% z1=subs(z,{x,y},{x1,y1});% surf(x1,y1,z1), axis([-3 3 -2 2 -0.7 1.5])% contour(x1,y1,z1,30), hold on % 绘制等高线% zx1=subs(zx,{x,y},{x1,y1});% zy1=subs(zy,{x,y},{x1,y1});% quiver(x1,y1,zx1,zy1) % 绘制引力线%积分问题的解析解%F=int(fun,x)%I=int(f,x,a,b)%I=int(f,x,a,inf)% syms x; I1=int(exp(-x^2/2),x,0,1.5) %无解% >> vpa(I1,70)% >> I2=int(exp(-x^2/2),x,0,inf)%顺序的改变使化简结果不同于原函数,但其误差为0,表明二者实际完全一致。