专题四MATLAB程序设计基础-58页文档

合集下载

MATLAB程序设计主题知识讲座

MATLAB程序设计主题知识讲座
(3) 命令按钮操作。单击MATLAB主窗口工具栏 上旳New M-File命令按钮,开启MATLAB文本编 辑器后,输入M文件旳内容并存盘。
2.打开已经有旳M文件 打开已经有旳M文件,也有3种措施: (1) 菜单操作。从MATLAB主窗口旳File菜 单中选择Open命令,则屏幕出现Open对话 框,在Open对话框中选中所需打开旳M文 件。在文档窗口能够对打开旳M文件进行 编辑修改,编辑完毕后,将M文件存盘。 (2) 命令操作。在MATLAB命令窗口输入 命令:edit 文件名,则打开指定旳M文件。 (3) 命令按钮操作。单击MATLAB主窗口 工具栏上旳Open File命令按钮,再从弹出 旳对话框中选择所需打开旳M文件。
3.try语句 语句格式为:
try 语句组1
catch 语句组2
end try语句先试探性执行语句组1,假如语句组1
在执行过程中出现错误,则将错误信息赋 给保存旳lasterr变量,并转去执行语句组2。
例3-7 矩阵乘法运算要求两矩阵旳维数相容,不然 会犯错。先求两矩阵旳乘积,若犯错,则自动转 去求两矩阵旳点乘。
例3-12 求[100,200]之间第一种能被21整除 旳整数。
程序如下: for n=100:200 if rem(n,21)~=0
continue end break end n
4.循环旳嵌套 假如一种循环构造旳循环体又涉及一种循环构造,就称为 循环旳嵌套,或称为多重循环构造。 例3-13 若一种数等于它旳各个真因子之和,则称该数为 完数,如6=1+2+3,所以6是完数。求[1,500]之间旳全部完 数。
例3-3 求一元二次方程ax2 +bx+c=0旳根。 程序如下:
a=input('a=?'); b=input('b=?'); c=input('c=?'); d=b*b-4*a*c; x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]; disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);

matlab程序设计基础

matlab程序设计基础

matlab程序设计基础Matlab程序设计基础随着计算机技术的发展,程序设计也成为了现代社会中不可或缺的一部分。

在程序设计的过程中,Matlab作为一种高效的工具语言,被广泛应用于科学计算、数据分析和工程开发等领域。

本文将介绍Matlab程序设计的基础知识,帮助初学者快速入门和掌握。

Matlab的语法结构相对简单,易于上手。

在Matlab中,我们可以使用变量来存储和操作数据。

变量的命名需要遵循一定的规则,如不能以数字开头,不能包含特殊字符等。

同时,Matlab中的变量不需要事先声明其类型,可以根据赋值的数据类型自行确定。

Matlab提供了丰富的数学运算和函数库,可以方便地进行各种数学计算。

比如,我们可以使用Matlab进行矩阵运算、线性代数计算、微积分、符号计算等。

通过调用内置函数或自定义函数,我们可以实现复杂的数学运算,并得到准确的结果。

除了数学运算,Matlab还支持图形绘制和可视化。

通过调用绘图函数,我们可以绘制各种类型的图形,如折线图、散点图、柱状图等。

这对于数据分析和结果展示非常有帮助。

同时,Matlab还支持对图形的格式、颜色、标签等进行自定义,使得图形更加直观和美观。

在Matlab程序设计中,控制流程也是一个重要的概念。

通过控制流程语句,我们可以实现条件判断、循环和函数调用等操作。

条件判断语句(如if-else语句)可以根据给定的条件选择不同的执行路径。

循环语句(如for循环、while循环)可以重复执行一段代码,实现重复计算或迭代操作。

函数调用可以将一段代码封装成一个函数,方便重复使用和模块化编程。

Matlab还支持文件的读写和数据的导入导出。

我们可以使用文件读写函数来操作文本文件、Excel文件、图像文件等。

通过数据导入导出函数,我们可以将数据从不同的格式(如CSV、XML、JSON)中导入到Matlab中,或将Matlab中的数据导出到其他格式中。

这为数据处理和数据交换提供了便利。

第2章 MATLAB 语言程序设计基础

第2章 MATLAB 语言程序设计基础

14
3.type — 可显示指定文件的 全部内容
• type myfile.m
• 与dos下的用法完全一样
2014-11-30
系统仿真与MATLAB---广东工业大学自动化学院
15
4.delete — 删除指定文件
• del abc — 删除当前目录下的abc文

• del c:\matlab\aaa.m
MATLAB----
2014-11-30
广东工业大学自动化学院
21
• path(path,’c:\mydir’) 将根目录下 的 mydir 临时纳入搜索路径 • 可将你需要的目录永久纳入 matlab搜索路径 打开c:\matlab\matlabrc.m文件
在所有搜索路径后加上 ‘c:\mydir\;’,…

2014-11-30 系统仿真与MATLAB---广东工业大学自动化学院
29

MATLAB 语言的变量名规则
由一个字母引导,后面可以为其他字符 区分大小写 Abc ABc 有效 MYvar12, MY_Var12 和 MyVar12_ 错误的变量名 12MyVar, _MyVar12


其他数据类型
uint8,常用于图像表示和处理,8位 int8( ), int16( ), int32( ),uint16( ), uint32( )

2014-11-30
系统仿真与MATLAB---广东工业大学自动化学院
31
符号型变量数据类型

符号型,sym(A), 常用于公式推导

变量声明

采用变精度函数求值
【例2-1】求出自然对数底 的前300位有效数字

MATLAB基础及程序设计

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基础》课件

《MATLAB基础》课件
它由美国MathWorks公司开发,广泛 应用于工程、科学、金融等领域。
Matlab的用途
算法开发
Matlab提供了丰富的数学函数库,方便 用户进行算法开发。
数据可视化
Matlab具有强大的绘图和可视化功能, 可以方便地绘制各种图表。
数据分析
Matlab提供了统计分析工具箱,可以进 行数据分析和处理。
微分方程求解
使用Matlab的符号计算功能和数 值求解方法,如`dsolve`和 `ode45`等,可以求解常微分方程 和偏微分方程。
数据分析
数据导入与预处理
使用Matlab的数据导入工具箱,如`readtable`、`readmatrix`等 ,可以方便地导入各种数据格式,并进行数据清洗和预处理。
并进行预测。
聚类算法
Matlab提供了K均值聚类 、层次聚类等聚类算法, 可用于数据聚类和分组。
特征选择与降维
使用Matlab的特征选择和 降维函数,如`fitcdiscr`、 `pca`等,可以提取关键特
征和降低数据维度。
谢谢您的聆听
THANKS
的计算顺序。
流程控制
总结词
掌握Matlab中的流程控制语句及其用法 。
VS
详细描述
Matlab提供了多种流程控制语句,如ifelse语句、switch-case语句和循环语句 (for和while)。这些语句用于控制程序 的执行流程,实现条件判断和重复执行等 功能。
03
Matlab矩阵运算
矩阵的创建
总结词
介绍矩阵的特征值和特征向量运算
详细描述
在Matlab中,可以使用eig函数来计算矩阵的特征值和特 征向量。例如,计算一个3x3的矩阵的特征值和特征向量 可以使用[V,D] = eig(A)的形式,其中V是特征向量矩阵, D是对角线元素为特征值的矩阵。

MATLABch04MATLAB程序设计基础知识Word版

MATLABch04MATLAB程序设计基础知识Word版

Matlab-ch04(MATLAB程序设计-基础知识)第4讲M A T L A B程序设计-基础知识内容提要:本章主要介绍MA TLAB程序设计的有关基础知识。

重点及难点:MA TLAB作为一种高级应用软件,除了命令行操作的直接交互方式以外,还有自己的编程语言。

为了充分发挥和体现MA TLAB的功能,必须掌握MA TLAB的程序设计。

本讲详细介绍MA TLAB程序设计的基本知识,通过本章的学习,可以掌握关于MA TLAB程序设计的方法,增强设计应用程序的能力。

MA TLAB不仅是一个功能强大的工具软件,更是一种高效的编程语言。

MA TLAB的编程效率比常用的BASIC、C、FORTRAN和PASCAL等语言要高得多,而且容易维护。

MA TLAB软件即MATLAB语言的编程环境,M文件也就是用MA TLAB语言编写的程序代码文件。

§4.1 MATLAB的变量和表达式一、MATLAB的变量及其类型1、变量命名规则在MATLAB中,对变量(包括函数)命名时应遵循以下规则:(1)变量名(包括函数名)对字母的大小写敏感,即MATLAB区分字母的大小写;(2)变量名的第一个字符必须为英文字母,而且不能超过31个字符;(3)变量名由英文字母、数字和下划线组成,即变量名可以包含下连字符、数字,但不能为空格符(Backspace)和标点。

例如,my_var_30就是合法的变量名。

2、局部变量和全局变量(1)局部变量只在每个函数体内定义、使用,而不能从其他函数和MATLAB工作空间访问的变量称为局部变量。

(2)全局变量在多个函数及MATLAB函数中都能使用的变量称为全局变量。

通常每个函数体内都有自己定义的变量,不能从其他函数和MA TLAB工作空间访问这些变量,这就是局部变量。

如果要使某个变量在几个函数及MATLAB函数中都能使用,它就是全局变量。

(3)局部变量和全局变量的区别全局变量名应尽可能大写,并用“global'’声明。

MATLAB程序设计基础

MATLAB程序设计基础

命令文件:
运行命令文件的效果等价于从Matlab命令窗口中 按顺序逐条输入并运行文件的指令。 特点: 可以访问Matlab当前工作空间中的所有变量和数据 命令文件中运行过程中创建或定义的变量均被保存 在工作空间。 没有输入输出参数 因此,命令文件通常作为主程序来设计。



命令文件包括两部分:注释文件和程序文件
1)顺序结构 —— 依次顺序执行程序的条语句

数据的输入
A=input(提示信息,选项);
A
B
使用input函数从键盘输入数据,调用格式为:
其中提示信息为一个字符串,用于提示用户输入 什么样的数据。如果在input函数调用时采用‘s’ 选项,则允许用户输入一个字符串。
例如,想输入一个人的姓名,可采用命令:
语句2_1ቤተ መጻሕፍቲ ባይዱ
if语句是根据表达式的值是否为0来判断执行 哪一分支的,某些情况下,要根据表达式的不同值 来判断执行哪一分支,如表达式的值为1,2,3时,分 别执行不同的操作。虽然也可以用多条if语句来完 成这一工作,但Matlab语言中提供了一条switch语 句,可以更方便的完成。

switch语句(开关分支语句)
2)选择结构

if语句
在Matlab中,if语句有4种格式。
表达式

(1).单分支if语句
if (条件表达式) 真 if (条件表达式 ) 语句; if (条件表达式) { 语句; 语句; 语句; 语句 语句; …… end end ……} 当条件成立时,则执行语句组,执行完之后继续执行if语 句的后继语句,若条件不成立,则直接执行if语句的后继 语句。
缺点: • 命令行操作时,Matlab窗口只允许一次执行一行 上的一个或几个语句。 • 命令行方式程序可读性差,而且不能存储。

MATLAB语言程序设计基础

MATLAB语言程序设计基础
第22页/共41页
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
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

专题四
例4.11 求定积分。
a=0; b=3*pi; n=1000; h=(b-a)/n; x = a:h:b; f=exp(-0.5*x).*sin(x+pi/6); for i=1:n
s(i)= (f(i)+f(i+1))*h/2; end s=sum(s)
事实上,MATLAB提供了有关数值积分的标 准函数,实际应用中可直接调用这些函数求数 值积分。
专题四
4.2.2 disp函数
调用格式为: disp(输出项) 其中输出项既可以为字符串,也可以为矩阵。 注意:用disp函数显示矩阵时将不显示矩阵的 名字,而且其格式更紧密,且不留任何没有意 义的空行。
b= 234 567 890
>> disp (b) 234 567 890
disp(' Jan Feb disp(rand(5,3))
rate=10/100;
otherwise
rate=14/100;
end
price=price*(1-rate)
4.3.3 try语句 (错误控制语句)
语句格式为:
try 语句组1
catch 语句组2
end try语句先试探性执行语句组1,如果语句组1 在执行过程中出现错误,则将错误信息赋给保 留的lasterr变量,并转去执行语句组2。这种 试探性执行语句是其他高级语言所没有的。
专题四
例4.4计算分段函数值。
程序如下: x=input('请输入x的值:'); if x==10 y=cos(x+1)+sqrt(x*x+1); else y=x*sqrt(x+sqrt(x)); end y
专题四
例4.5 输入数n,判断其奇偶性
程序如下: n = input('n='), if rem(n,2)==0 A = ‘even’ else A = ‘odd’ end
在多重循环中,break只能使程序跳出包含它的最 内层的那个循环
专题四
例4.14 用while语句实现例4.10。
y=0; i=1; while 1
f=1/i/i; y=y+f; if i==100
4.1.2 M文件的分类
分类:
独立的m文件 — 称命令文件(Script File),主程序
命令文件实际上是一串指令的集合,与在命令窗口逐行 执行文件中的所有指令,其结果是一样的。没有输入输 出参数。
可调用m文件 — 称函数文件(Function File),子程 序
第一行包含function,需要输入变量,返回输出变量
2!
m !
X=input('X='); E=zeros(size(X)); F=eye(size(X)); n=1; while norm(F,1)&gn+1; end E expm(X) %调用MATLAB矩阵指数函数求矩阵指数
与循环结构相关的还有一个break语句,当在循环 体内执行到该语句时,程序将跳出循环。该语句一 般与if语句配合使用。
专题四
4.2.3 pause函数
其调用格式为: pause(延迟秒数) 如果省略延迟时间,直接使用pause,则将暂 停程序,直到用户按任一键后程序继续执行。 pause命令在程序调试以及需要看中间结果时 特别有用。
若要强行中止程序的运行可使用Ctrl+C命令。
专题四
4.3 选择结构
4.3.1 if语句
3.多分支if语句 语句格式为: if 条件1
语句组1 elseif 条件2
语句组2 …… elseif 条件m
语句组m
else 语句组m+1
end
专题四
例4.6 输入一个字符,若为大写字母,则输出其后继字 符,若为小写字母,则输出其前导字符,若为数字字 符则输出其对应的数值,若为其他字符则原样输出。
编辑m文件可使用各种文本编辑器。
专题四
一、Matlab的工作模式
指令驱动模式
通常Matlab以指令驱动模式工作,即在 Matlab 窗口下当用户输入单行指令时,Matlab 立即处理这条指令,并显示结果,这就是 Matlab命令行方式。
命令行操作时,Matlab窗口只允许一次执 行一行上的一个或几个语句。
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
专题四
4.2 数据的输入输出
4.2.1 input函数
调用格式为: A=input (提示信息,选项); 其中提示信息为一个字符串,用于提示用户输入 什么样的数据。 A=input('A= ')
如果在input函数调用时采用's'选项,则允许用户 输入一个字符串。例如,想输入一个人的姓名, 可采用命令: xm = input ('What''s your name?', 's')
专题四
for语句更一般的格式:
for 循环变量=矩阵表达式
循环体语句
end
执行过程是依次将矩阵的各列元素赋给循 环变量,然后执行循环体语句,直至各列元素 处理完毕。实际上,“初值 : 增量 : 终值” 是 一个仅为一行的矩阵(行向量),因而列向量是 单个数据。
专题四 例4.12 已知5个学生4门功课的成绩,求每名学 生的总成绩。
例4.8 某商场对顾客
case {0,1}
所购买的商品实行打折
rate=0;
销售,已知打折标准, case {2,3,4}
求所售商品的实际销售 价格。
rate=3/100; case num2cell(5:9)
rate=5/100;
case num2cell(10:24)
rate=8/100;
case num2cell(25:49)
专题四
例如:
x1=0:10 x1 =
0123 7 8 9 10 x2=0:3:11 x2 =
0369 x3=11.5:-3:0 x3 =
11.5000 8.5000
456 5.5000 2.5000
专题四
x1=0:10,x2=0:3:11,x3=11.5:-3:0 x1 =
01234567 8 9 10 x2 =
0369 x3 =
11.5000 8.5000 5.5000 2.5000 在Matlab窗口输入数据和命令进行计算时,当处
理复杂问题和大量数据时是不方便的。因此应编辑 m文件。
专题四
命令行方式程序可读性差,而且不能存储, 对于复杂的问题,应编写成能存储的程序文 件。
m文件模式
将Matlab语句构成的程序存储成以m为扩展 名的文件,然后再执行该程序文件,这种工 作模式称为程序文件模式。
c=a;a=b;b=c;
a
b 然后在MATLAB的命令窗口中输入exch,将会执 行该命令文件。
>>exch
例4.2 建立一个函数文件将变量a,b的值互换, 然后在命令窗口调用该函数文件。 首先建立函数文件 fexch.m:
function [a,b] = fexch(a,b) c=a; a=b; b=c; 然后在MATLAB的命令窗口调用该函数文件: >>clear all; >>x=1:10; y=[11,12,13,14;15,16,17,18]; >>[x,y]=fexch(x,y)
主要区别:
命令文件的变量在文件执行完后保存在内存中,而函数 文件内定义的变量仅在函数文件内部起作用,执行完函 数文件后,这些内部变量将被清除。
例4.1 建立一个命令文件将变量a,b的值互换,然后运 行该命令文件。 首先建立命令文件并以文件名exch.m存盘:
clear all;
a=1:10; b=[11,12,13,14;15,16,17,18];
语句格式为:
for 循环变量=初值 : 增量 : 终值 循环体语句
end
专题四
例4.10 已知y的表达式,当n=100时,求y的值。
y=0; n=100; for i=1:n
y=y+1/i^2; end y 在实际MATLAB编程中,为提高程序的执行速度, 常用向量运算来代替循环操作: n=100; i=1:n; f=1./i.^2; y=sum(f)
67 89 76 87
专题四
4.4.2 while语句
while语句的一般格式为: while 条件
循环体语句 end
其执行过程为:若条件成立,则执行循环体语 句,执行后再判断条件是否成立,如果不成立 则跳出循环
专题四
例4.13 根据矩阵指数的幂级数展开式求矩阵指数。
eAIA 1A 2.. .1A m...
程序如下: a=input('a=?'); b=input('b=?'); c=input('c=?'); d=b*b-4*a*c; x=[(-b+sqrt(d))/(2*a), (-b-sqrt(d))/(2*a)]
disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);
相关文档
最新文档