第3章__MATLAB程序设计[1]
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
disp(c); end
5.1.4 选择结构- switch语句
switch语句
其语句格式为: switch 表达式 case 值1 语句组1 case 值2 语句组2 …… case 值m 语句组m otherwise 语句组m+1 end
5.1.4 选择结构- switch语句
例 某商场对顾客所购买的商品实行打折销售,已知打折标 准,求所售商品的实际销售价格
例 矩阵乘法运算要求两矩阵的维数相容,否则会出错。 先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘
matlab编程2
第二节 程序控制结构
选择结构
选择结构 是根据给定的条件成立或不成立,分别执 行不同的语句. Matlab 用于实现选择结构的语句有 if -end语句 和 switch-end 语句
19
第二节 程序控制结构
if -end条件语句
单分支结构
if 条件表达式 语句组 end
双分支结构
If 条件表达式
例
input应用时,注意:
输入字符串时必须带单引号 单引号的输出:两个连续的单引号 若输入的是数、数学表达式,则in不能出现
11
第二节 程序控制结构
disp
数据的输出:disp
disp(X)
输出变量 X 的值,X 可以是数值矩阵或字符串
一次只能输出一个变量
例
>> A='Hello, Tom!'; >> disp(A) >> B=[1 2 3; 4 5 6; 7 8 9]; >> disp(B)
x=input(‘输入初值x=’);
n=input(‘输入迭代次数=’);
y(1)=x ; for k=1:n x=1/(x+1); y(k)=x;
function y=dd2(x,n) y(1)=x ; for k=1:n x=1/(x+1); y(k)=x; end
end
y
解:程序如下: function y=f(x)
是
语句组2
……
K=值m? 否 语句组n
是
语句组m
switch-end语句的 下一句
第二节 程序控制结构
switch-end 语句
关于 switch-end 语句的几点注解:
《MATLAB程序设计》复习资料,DOC
Matlab习题及复习要点1.Matlab的英文组成;程序和变量的命名规则;在MATLAB语言中是区分字母大小的,也就是说,大写字母和小写字母代表的东西是不同的。
234510.读懂逻辑表达式,会写出逻辑表达式的结果(0或1)11.掌握集中循环结构,尤其if..elseif…else…end和swich…case结构的语法,要准确。
12.会编写分段函数的程序;x和y满足如下关系:编写函数y=f(x),用于计算上述分段函数。
13.绘图时采用的几个命令的掌握:holdon、plot、plot3 14*.用语句[x,y]=meshgrid(a:b)构建网格数据,例子如下:第一讲概论1.简述matlab基本特点。
(0.5分)交互式操作界面;高效的数值计算功能;演算式语言;可视化输出;代码、数据文件的集成管理环境;支持用户界面开发,自定义创建工具(GUIDE);丰富的外部接口——支持C/C++、Java、Excel/Word、Ansys,COM、DDE(动态数据交换)和ActiveX……。
删除工作空间的变量a:cleara;清空工作空间:clear或clearall;删除命令行:esc;查询函数sin的帮助文档:helpsin;1.分别用直接输入法和存储变量法求1+cos(pi)*(2+2i)。
直接输入法:>>1+cos(pi)*(2+2i); 存储变量法:>>a=cos(pi);>>b=2+2i;>>c=1+a+b;2.a=int8(100),b=int8(50)a+b=127;a-b=50;第三讲数组1.生成一个3*3随机矩阵,将其对角线元素的值加1。
(写出代码)rand(3)+eye(3)1.生成一个元素值在1和10之间的3*3随机矩阵,将其重新排列,使得:(1)每列按降序排列;(2)每行按降序排列。
(3)C<=D=[0,0;1,1].(10)已知A为如下4*4矩阵:则运行B=A([1:2],[1:2])后,B为2行2列矩阵,其值为__[12;56]_______。
MATLAB使用教程
2.2 变量和赋值
2.2.1 变量的命名 在MATLAB中,变量名是以字母开头, 后接字母、数字或下划线的字符序列, 最多19个字符。 在MATLAB中,变量名区分字母的大小 写。MATLAB提供的标准函数名以及命 令名必须用小写字母。
目录 21
2.2.2 赋值语句 MATLAB赋值语句有两种格式: (1) 变量=表达式 (2) 表达式 一般地,运算结果在命令窗口中显示出来。如 果在语句的最后加分号,那么,MATLAB仅仅 执行赋值操作,不再显示运算的结果。 在MATLAB语句后面可以加上注释,注释以% 开头,后面是注释的内容。
目录 22
例2.1 计算表达式的值,并将结果赋给变量x, 然后显示出结果。 在MATLAB命令窗口输入命令:
x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i) %计算表达式的值
目录 23
2.2.3 数据的输出格式 MATLAB用十进制数表示一个常数,具体可 采用日常记数法和科学记数法两种表示方法。 数据输出时用户可以用format命令设置或改 变 数 据 输 出 格 式 。 format 命 令 的 格 式 为 : format 格式符 注意,format命令只影响数据输出格式,而 不影响数据的计算和存储。
17
例1.4 设有常微分方程初值问题,试求 其数值解,并与精确解相比较。 (1)建立函数文件funt.m: function yp=funt(t,y) yp=(y^2-t-2)/4/(t+1); (2)求解微分方程: t0=0;tf=10;y0=2; [t,y]=ode23('funt',[t0,tf],y0); y1=sqrt(t+1)+1; t'
实验3 Matlab程序设计1实验报告
实验3 Matlab程序设计1实验报告I am going to write the report for the Matlab program design experiment 3. In this experiment, I was required to use Matlab to design a program to solve a specific problem.I had to write the program, test it, and then write areport on the results.First, I started by analyzing the problem and breaking it down into smaller, more manageable parts. This is a crucial step in programming, as it allows me to understand the problem fully and come up with an effective solution. Once I had a clear understanding of the problem, I began writing the program in Matlab.I encountered some challenges along the way, such as debugging errors and optimizing the code for efficiency. However, with some perseverance and problem-solving skills, I was able to overcome these challenges and successfully write the program.After writing the program, I tested it with different inputs to ensure that it produced the correct outputs inall cases. Testing is an essential part of programming, asit helps to identify and fix any errors or bugs in the code.Once the program was tested and working correctly, I wrote a report on the results. In the report, I explainedthe problem, my approach to solving it, and the results of the program. I also included any insights or observations that I gained from working on the program.Overall, this experiment was a valuable learning experience for me. It allowed me to practice my programming skills and problem-solving abilities, and it also gave me a better understanding of how to use Matlab for real-world applications.中文回答:我要写实验3的Matlab程序设计实验报告。
matlab程序设计第三章课后习题答案
1. p138 第6题在同一坐标轴中绘制下列两条曲线并标注两曲线交叉点。
>> t=0:0.01:pi;>> x1=t;>> y1=2*x1-0.5;>> x2=sin(3*t).*cos(t);>> y2=sin(3*t).*sin(t);>> plot(x1,y1,'r-',x2,y2,'g-')>> axis([-1,2,-1.5,1])>> hold on>> s=solve('y=2*x-0.5','x=sin(3*t)*cos(t)','y=sin(3*t)*sin(t)');>> plot(double(s.x),double(s.y),'*');截图:p366 第4题绘制极坐标曲线,并分析对曲线形状的影响。
function [ output_args ] = Untitled2( input_args )%UNTITLED2 Summary of this function goes here% Detailed explanation goes heretheta=0:0.01:2*pi;a=input('请输入a的值:');b=input('请输入b的值:');n=input('请输入n的值:');rho=a*sin(b+n*theta);polar(theta,rho,'k');end下面以a=1,b=1,n=1的极坐标图形为基础来分析a、b、n的影响。
对a的值进行改变:对比发现a只影响半径值的整倍变化对b的值进行改变:对比发现b的值使这个圆转换了一定的角度对n的值进行改变:对比发现当n>=2时有如下规律1、当n为整数时,图形变为2n个花瓣状的图形2、当n为奇数时,图形变为n个花瓣状的图形分别让n为2、3、4、5同时改变b和n的值,对比发现图形变为2n个花瓣状,并且还旋转了一定角度1 绘制sin(x)曲线,通过句柄修改曲线的颜色,要求:a)生成曲线的同时,获取句柄,再修改颜色;>> x=0:pi/50:2*pi;>> y=sin(x);>> h=plot(x,y)h =174.0101>> set(h,'color','r');截图如下:b)先生成曲线,然后再获取句柄,再完成颜色修改。
有限元方法与MATLAB程序设计 第3章 桁架和刚架
Fe keUe
Ue TUe
结构坐标系下的 单元刚度方程
9
结构坐标系下单元刚度矩阵 ke T TkeT
c cos s sin
y
Fe keUe
y
i (xi , yi )
(xj, yj ) x j
x
结构坐标系
cos sin 0
0 1 0 1 0 e cos sin 0
0
ke
EA sin
Fyi
Fxj Fyj
EA l
0
1
0
0 0 0
0 1 0
0
vi
0 0
u v
j j
单元坐标系下的 1 0 1 0
单元刚度矩阵
ke
EA l
0
1
0 0
0 1
0 0
0
0
0
0
7
§3.1.3 整体坐标系下的单元刚度方程
Fxi Fxi cos Fyi sin Fyi Fxi sin Fyi cos Fxj Fxj cos Fyj sin
是结构坐标系x轴正方 向至单元坐标轴x 的角度
y
x
y Fxi i
Fxi Fyi Fyi
x
结构(整体)坐标系
Fyj Fxj sin Fyj cos
Fxi Fyi
Fxj
Fyj
e
cos
sin
0
0
sin cos
0 0
0 0
cos sin
0
e
Fxi
e0Fyi源自sin cosFxj
Fyj
Fe TFe Ue TUe
cos
T sin
0
0
sin cos
matlab教程(全)09Matlab程序设计
2020/11/8
Application of Matlab Language
14
5.5 Matlab矩阵分析与处理
5.5.1 特殊矩阵 常见的特殊矩阵有零矩阵、幺矩阵、单位矩阵等,这类特殊矩阵在应用
中具有通用性。 1、通用的特殊矩阵 常用的产生通用殊矩阵的函数有: zeros:产生全0矩阵(零矩阵)。 ones: 产生全1矩阵(幺矩阵)。 eye: 产生单位矩阵。 rand:产生0~1间均匀分布的随机矩阵。 randn:产生均值为0,方差为1的标准正态分布随机矩阵。
5.4.1 程序调试概述 一般说来,应用程序的错误有两类,一类是语法错误,另一类是运行时
的错误。语法错误,给出相应的错误信息,并标出错误在程序中的行 号。例如:输入下列程序: A = 87;
B = 9.3;
C = A+*B; 系统将给出错误信息:
??? Error: File: Untitled1.m Line: 3 Column: 7
2020/11/8
Application of Matlab Language
4
说明:
将以上函数文件以文件名fcircle.m保存,然后在命令窗口调用。
[s,p] = fcircle(10) 输出结果是: s=
314.1593 p=
62.8319 采用help命令或lookfor命令可以显示出注释说明部分的内容。 help fcircle 屏幕显示
进行存取和修改。
全局变量用global命令定义,格式为:
global 变量名
例5.13 全局变量应用示例。
先建立函数文件wadd.m,该函数将输入的参数加权相加:
function f = wadd(x,y)
matlab课件
11
MATLAB语言
函数文件和命令文件的区别
函数文件可以传递参数,而命令文件不具备这种功能; 命令文件中的变量都是全局变量,文件执行完后,还是 有效变量,仍然保存在工作区间中;而函数文件中的变 量都是局部变量,只在本函数文件中才有效,当函数文 件执行完成后,这些变量将被清除。
12
MATLAB语言
18
MATLAB语言
3.3.1顺序结构
程序模块1 程序模块1 模块 程序模块2 程序模块2
• MATLAB中实现顺序结构的方法非常简单:
–只需将程序语句顺序排列即可
19
MATLAB语言
3.3.2 选择结构
成立 程序模块1 程序模块 不成立 程序模块2 程序模块
条件
• 在MATLAB中,选择结构 由两种语句结构实现:
MATLAB语言
•
•
Matlab课程共 36学时其中18学时实验18学 时理论 MATLAB将矩阵运算、数值分析、图形处理、 编程技术结合在一起,为用户提供了一个强有 力的科学及工程问题的分析计算和程序设计工 具,它还提供了专业水平的符号计算、文字处 理、可视化建模仿真和实时控制等功能,是具 有全部语言功能和特征的新一代软件开发平台。
15
MATLAB语言
菜单操作。 MATLAB主窗口的File菜单中 主窗口的File (1) 菜单操作。从MATLAB主窗口的File菜单中 选择New菜单项,再选择M file命令, 选择New菜单项,再选择M-file命令,屏幕上将 New菜单项 命令 出现MATLAB 文本编辑器窗口。 出现MATLAB 文本编辑器窗口。 命令操作。 MATLAB命令窗口输入命令 (2) 命令操作。在MATLAB命令窗口输入命令 edit,启动MATLAB文本编辑器后,输入m MATLAB文本编辑器后 edit,启动MATLAB文本编辑器后,输入m文件的 内容并存盘。 内容并存盘。 命令按钮操作。单击MATLAB MATLAB主窗口工具栏 (3) 命令按钮操作。单击MATLAB主窗口工具栏 上的New M-File命令按钮 启动MATLAB 命令按钮, MATLAB文本编辑 上的New M-File命令按钮,启动MATLAB文本编辑 器后,输入m文件的内容并存盘。 器后,输入m文件的内容并存盘。
Matlab程序设计
19
例:计算2个数的和,根据输入的参数个数不同使用不同 的运算表达式。 function [sum]=Ex0514(x,y) if nargin==1 sum=x+0; else if nargin==0 sum=0; else sum=x+y end end [sum]=Ex0514(1,2)
可以在某一目录中建立一个private目录来存放相关函数,具有性质:在 私有目录下的私有函数,只能被其父目录的M函数文件调用,对其他目 录的文件私有函数是不可见的,可以和其他目录下的函数重名;私有函 数父目录的M脚本文件也不可调用私有函数;在函数调用搜索时,私有 函数优先于其他MATALB路径上的函数。
局部变量和全局变量
(1)局部变量是在函数体内部使用的变量,其影响范围只 能在本函数内,仅存在于函数的工作空间内,只在函数执行 期间存在,函数执行完变量消失。
(2)全局变量是可以在不同函数工作空间和MATLAB工作 空间中共享使用的变量。在使用前必须用global定义,而且 每个要共享全局变量的函数和工作空间,都必须逐个用 global对变量加以定义。
m文件模式
m文件编辑器缺省设置是(通过菜单Preferences) c:\windows\notepad.exe 还可设成:c:\windows\write.exe c:\windows\command\ 注意:所创建的m文件必须纳入matlab搜索路 径后,才能在matlab命令窗口运行。
matlab 第3章 数值运算基础
HYIT
8
说明: 1.N阶方阵特征多项式系数矢量一定是n+1阶的 2.特征多项式系数矢量的第一个元素必须为1。
1 A 2 2
2 2 1 2 的特征多项式 2
1
2 2
2 2
2 ( )( 1) 3 9 5
HYIT
12
3.1.2 多项式运算
求多项式的值 求多项式的根 多项式的乘除运算 多项式的微积分 多项式的部分分式展开 多项式拟合
HYIT
13
求多项式的值
方法:函数polyval:按数组运算规则求值 函数polyvalm:按矩阵运算规则求值 格式: y=polyval(p,x) p为多项式,x可为标量/数组/矩阵 y=polyvalm(p,x) x可为标量/方阵
注:系数中的零不能省!
HYIT
4
创建多项式的方法
系数矢量直接输入法 特征多项式输入法 由根矢量创建多项式
HYIT
5
系数矢量直接输入法
适用于: 已知系数 → 表达式
方法: 函数poly2sym +系数矢量
例: 例: >> poly2sym([1 2 3 4]) >> poly2str([1 2 3 4],‘y') ans = ans = x^3+2*x^2+3*x+4 y^3 + 2 y^2 + 3 y + 4 说明: poly2str 以习惯方式显示多项式 poly2sym 双精度多项式系数转为符号多项式
HYIT
14
例: p=[1 1 1]; x=[0 1 2 3]; xm=[0 1; 2 3]; y1=polyval(p,x) y2=polyval(p,xm) ym=polyvalm(p,xm)
《MATLAB程序设计》实验指导书
三、
实验仪器和设备
1、 计算机一台。 2、 MATLAB7.0 以上集成环境。
四、
预习要求
2
《MATLAB 程序设计》实验指导书
1、 复习 MATLAB 的启动与Байду номын сангаас出,熟悉 MATLAB 运行环境。 2、 复习 MATLAB 中矩阵的生成以及矩阵运算的基本原理。
五、
实验内容及步骤
实验内容:
1、 求下列表达式的值 1) z1
5
《MATLAB 程序设计》实验指导书
2) 函数调用 函数文件编制好后,就可调用函数进行计算了。函数调用的一般格式为 [输出实参表]=函数名(输入实参表) 注意:函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个 数一致,否则会出错。函数调用时,实参先传递给形参,然后再执行函数功能。 5、 选择结构 1) if 语句 a) 单分支 if 语句 if 条件 语句块 end b) 双分支 if 语句 if 条件 语句块 1 else 语句块 2 end c) 多分支 if 语句 if 条件 1 语句块 1 elseif 条件 2 语句块 2 …… elseif 条件 n 语句块 n else 语句块 n+1 end 2) switch 语句 switch 表达式 case 结果表 1 语句块 1 case 结果表 2 语句块 2 ……
二、
实验原理
1、 M 文件 用 MATLAB 语言编写的程序,称为 M 文件,它们的扩展名均为.m。M 文件根据 调用方式的不同分为两类,命令文件(Script file)和函数文件(Function file) 。 2、 建立新的 M 文件 启动 MATLAB 文本编辑器有 3 种方法: 1) 单击工具栏上的“New M-File”命令按钮。 2) 从 MATLAB 主窗口的“File”菜单中选择“New”菜单项,再选择“M-file”命令。 3) 在 MATLAB 命令窗口输入命令“edit”。 3、 打开已有的 M 文件 1) 在当前目录窗口选中要打开的 M 文件,双击鼠标左键。 2) 单击 MATLAB 主窗口工具栏上的“Open File”命令按钮,再从弹出的对话框中 选择所需打开的 M 文件。 3) 从 MATLAB 主窗口的“File”菜单中选择“Open”命令,在“Open”对话框中选中 所需打开的文件。 4) 在 MATLAB 命令窗口输入命令“edit 文件名” 。 4、 函数文件 1) 函数文件的基本结构 函数文件由 function 语句引导,其基本结构为: function 输出形参表=函数名(输入形参表) 注释说明部分 函数体语句 注意:函数名的命名规则与变量名相同。当输出形参多于一个时,应用方括号 括起来。
第3章MATLAB程序设计3.1 M文件3.2 程序控制结构3.3 函数文...
例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))]);
2.数据的输出
MATLAB提供的命令窗口输出函 数主要有disp函数,其调用格式为 disp(输出项) 其中输出项既可以为字符串,也可 以为矩阵。
例3-2 输入x,y的值,并将它们的 值互换后输出。
程序如下: x=input('Input x please.'); y=input('Input y please.'); z=x; x=y; y=z; disp(x); disp(y);
程序如下: A=[1,2,3;4,5,6]; B=[7,8,9;10,11,12]; try C=A*B; catch C=A.*B; end C lasterr %显示出错原因
3.2.3 循环结构
1.for语句 for语句的格式为: for 循环变量=表达式1:表达式2:表达式3 循环体语句 end 其中表达式1的值为循环变量的初值,表达式 2的值为步长,表达式3的值为循环变量的 终值。步长为1时,表达式2之间第一个能 被21整除的整数。
程序如下: for n=100:200 if rem(n,21)~=0 continue end break end n
4.循环的嵌套: 如果一个循环结构的循环体又包括一
实验4答案 Matlab程序设计1
实验4 Matlab 程序设计1实验目的:1、 掌握建立和执行M 文件的方法;2、 掌握实现选择结构的方法;3、 掌握实现循环结构的方法。
实验内容:1. 从键盘输入一个4位整数,按如下规则加密后输出。
加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。
a = input('请输入一个四位整数:');a1 = fix(a/1000);a2 = rem(fix(a/100),10);a3 = rem(rem(fix(a/10),100),10);a4 = rem(a,10);a1 = rem(a1+7,10)a2 = rem(a2+7,10)a3 = rem(a3+7,10)a4 = rem(a4+7,10)b1 = a1;a1 = a3;a3 = b1;b2 = a2;a2 = a4;a4 = b2;b = a1*1000+a2*100+a3*10+a42. 求分段函数的值。
,x x x x y x x x x x x x ⎧+- <≠-⎪=-+ ≤<≠≠⎨⎪-- ⎩2226035605231且且及其他用if 语句实现,分别输出x=-5,-3,0,1,2,2.5,3,5时的y 值。
x = input(请输入X 的值:');if x <0 & x~=-3y = x.*x +x-6;elseif x>=0 & x<5 & x~=2 & x~=3y = x.*x-5*x+6;elsey = x.*x-x-1;endy3.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E,其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
要求:(1)分别用if语句和swich语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
MATLAB基础与编程入门(第二版)(张威)-第3章
第三章 数 据 类 型
注意:
MATLAB和C语言在处理数据类型和变量时不同。在C语言 中,任何变量在使用之前都必须声明,然后赋值,在声明变量时 就指定了变量的数据类型。但是在MATLAB中,任何数据变量都不 需要预先的声明,MATLAB将自动地将数据类型设置为双精度类型, 若需要使用其他类型的数据,则必须通过数据类型的转换完成。 MATLAB的数据类型名称同样就是数据类型转换的函数,利用这些 函数来完成相应的数据类型转化的工作。
第三章 数 据 类 型
第三章 数 据 类 型
3.1 概述 3.2 MATLAB基本数值类型 3.3 逻辑类型和关系运算 3.4 字符串 3.5 元胞数组 3.6 结构 3.7 本章小结
第三章 数 据 类 型 3.1 概 述
MATLAB的早期版本只有非常简单的二维数组和字符类型 的数据,目前的MATLAB版本中不仅有多达十几种的基本数据类型, 在不同的专业工具箱中还有特殊的数据类型,并且MATLAB还支持 面向对象的编程技术,支持用户自定义的数据类型。
关于数据类型转换函数的使用可以参阅相应的在线帮助。
第三章 数 据 类 型
例子3-2 使用不同的数据类型。
在MATLAB命令行窗体中键入下面的指令:
>> A = [1 2 3];
>> B = [4 5 6];
>> C = A + B;
>> whos
Name
Size
Bytes Class
A
1x3
24 double
MATLAB支持的基本数据类型见图3-1。
第三章 数 据 类 型
MATLAB数据类型
基本数值类型
字符串
实验三MATLAB的程序设计
end
ifk==0
Y=1;
elseifk==1&&n==1
Y=1;
elseifk<=n
Y=(n/k)*c(k-1,n-1);
end
程序测试:
>> c(0,0)
ans =
1
>> c(0,1)
ans =
1
>> c(3,4)
ans =
4
7,计算以下和式,并估计其求和公式以及验证:
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k;
end
测试:
>> s(3)
ans =
6
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k^2;
end
测试:
>> s(3)
ans =
14
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k^3;
end
测试:
>> s(2)
4
>> Joseph0(7,4)
2
11,求出 之间的所有素数;
M函数文件:
functionout = nprimes(N)
A= [1:N];
A(1)=0;
i=2;
whilei<= floor(sqrt(N));
forj= 2:fix(N/i)
A(i*j) = 0;
end;
i = A(find(A>i,1));
matlab教程(第3讲-数组)资料
变量命令规则
2.1 数值表示、变量及表达式 (续)
Matlab预定义的变量
变量名 ans eps pi inf i或j NaN 意义 最近的计算结果的变量名 MATLAB定义的正的极小值=2.2204e-16 圆周率π ∞值,无限大 虚数单元,sqrt(-1) 非数,0/0、∞/ ∞
〖说明〗 每当MATLAB启动完成,这些变量就被产生。 MATLAB中,被0除不会引起程序中断,给出报警的同时用inf或 NaN给出结果。 用户只能临时覆盖这些预定义变量的值,Clear或重启MATLAB可恢 复其值。
第3章 Matlab数据及其运算
Matlab数据类型非常丰富,除数值型、字符型等基本数 据类型外,还有结构体、单元等更为复杂的数据类型。
各种数据类型都以矩阵形式存在,矩阵是Matlab最基本的 数据对象,并且矩阵的运算是定义在复数域上的。
2.1 数值表示、变量及表达式
数值的记述
Matlab的数只采用习惯的十进制表示,可以 带小数点和负号;其缺省的数据类型为双精度 浮点型(double)。 例如:3 -10 0.001 1.3e10 1.256e-6
〘例4-1〙单下标的使用 >>a=zeros(2, 5); >>a(:)=-4:5
a= -4 -2 0 2 4 -3 -1 1 3 5 注意数组的排列顺序。
2018/11/20
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.while语句 . 语句 条件循环语句: 条件循环语句:while … end while (条件 条件) 条件 循环体语句 end 其执行过程为:若条件成立, 其执行过程为:若条件成立,则执行循环体 语句,执行后再判断条件是否成立, 语句,执行后再判断条件是否成立,如果不 成立则跳出循环。 成立则跳出循环。 从键盘输入若干个数,当输入0时结束 例3.7 从键盘输入若干个数,当输入 时结束 输入,求这些数的平均值和它们之和。 输入,求这些数的平均值和它们之和。
说明: 说明: 1. 对循环次数的一个判断; 对循环次数的一个判断; 2.最好用矩阵或向量而不用 最好用矩阵或向量而不用for, 最好用矩阵或向量而不用 3.写成锯齿形增加可读性 用;屏蔽中间结果 写成锯齿形增加可读性,用 屏蔽中间结果. 写成锯齿形增加可读性 s=0; = for k=1:100 S=s+k; end K=1:100 Sum(k)
矩阵乘法运算要求两矩阵的维数相容, 例 矩阵乘法运算要求两矩阵的维数相容,否则会出 错。先求两矩阵的乘积,若出错,则自动转去求两矩 先求两矩阵的乘积,若出错, 阵的点乘。 阵的点乘。 程序如下: 程序如下: A=[1,2,3;4,5,6]; B=[7,8,9;10,11,12]; try C=A*B; catch C=A.*B; end C lasterr %显示出错原因 显示出错原因
说明: 说明: 1.if和else必须对应,否则易错; 1.if和else必须对应,否则易错; 必须对应 2.可用elseif增加选择结构 2.可用elseif增加选择结构 可用elseif
2.switch语句 . 语句
情况切换语句:switch , case , otherwise , end switch 表达式 case 表达式 表达式1 语句组1 语句组 case 表达式 表达式2 语句组2 语句组 …… case 表达式m 表达式 语句组m 语句组 otherwise 语句组n 语句组 end
sum=0; cnt=0; val=input('Enter a number (end in 0):'); while (val~=0) sum=sum+val; cnt=cnt+1; val=input('Enter a number (end in 0):'); end if (cnt > 0) mean=sum/cnt end
•3.try语句 . 语句 •语句格式为: 语句格式为: 语句格式为 •try • 语句组 语句组1 •catch • 语句组 语句组2 •end •try语句先试探性执行语句组 ,如果语句组 语句先试探性执行语句组1,如果语句组1 语句先试探性执行语句组 在执行过程中出现错误, 在执行过程中出现错误,则将错误信息赋给保 留的lasterr变量,并转去执行语句组 。 变量, 留的 变量 并转去执行语句组2。
c=input('请输入一个字符 请输入一个字符','s'); 请输入一个字符 if c>='A' & c<='Z' disp(setstr(abs(c)+abs('a')-abs('A'))); elseif c>='a'& c<='z' disp(setstr(abs(c)- abs('a')+abs('A'))); elseif c>='0'& c<='9' disp(abs(c)-abs('0') ); else disp(c); end
3.2.2 循环结构 1.for语句 . 语句 for语句的格式为: 语句的格式为: 语句的格式为 for 循环变量 循环变量=e1:步长 步长:e2 步长 循环体语句 end
例3.5 一个三位整数各位数字的立方和等于 . 该数本身则称该数为水仙花数。 该数本身则称该数为水仙花数。输出全部水仙 花数。 花数。 for m=100:999 m1=fix(m/100); %求m的百位数字 求 的百位数字 m2=rem(fix(m/10),10); %求m的十位数字 求 的十位数字 m3=rem(m,10); %求m的个位数字 %求m的个位数字 if m==m1*m1*m1+m2*m2*m2+m3*m3*m3 disp(m) end end
3.2 控制语句
控 制 语 句
循环语句 分支语句 人机交 互语句
For循环 循环 While循环 循环 If选择 选择 Input keyboard Pause,break ,
3.2.1 选择结构 1.if语句 . 语句 语句有3种格式 在MATLAB中,if语句有 种格式。 中 语句有 种格式。 (1) 单分支 语句: 单分支if语句: 语句 if 条件 语句组 end 当条件成立时,则执行语句组, 当条件成立时,则执行语句组,执行完之后 继续执行if语句的后继语句 若条件不成立, 语句的后继语句, 继续执行 语句的后继语句,若条件则直接执行 语句的后继语句。
2.打开已有的M文件 .打开已有的 文件
(1) 菜单操作。从MATLAB主窗口的 菜单操作。 主窗口的File菜单中选择 主窗口的 菜单中选择 Open命令。 命令。 命令 (2) 命令操作。在MATLAB命令窗口输入命令:edit + 命令操作。 命令窗口输入命令: 命令窗口输入命令 文件名,则打开指定的M文件 文件。 文件名,则打开指定的 文件。 (3) 命令按钮操作。单击 命令按钮操作。单击MATLAB主窗口工具栏上的 主窗口工具栏上的 Open File命令按钮,再从弹出的对话框中选择所 命令按钮, 命令按钮 需打开的M文件 文件。 需打开的 文件。
m=100:999; m1=fix(m/100); %求m的百位数字 m2=rem(fix(m/10),10); %求m的十位数字 m3=rem(m,10); %求m的个位数字 mm=m1.^3+m2.^3+m3.^3; k=find(m==mm); jieguo=m(k)
for语句更一般的格式为: 语句更一般的格式为: 语句更一般的格式为 for 循环变量 矩阵表达式 循环变量=矩阵表达式 循环体语句 end 各列元素赋给循环 执行过程是依次将矩阵的各列元素 执行过程是依次将矩阵的各列元素赋给循环 变量,然后执行循环体语句, 变量,然后执行循环体语句,直至各列元素处 理完毕。 理完毕。 例3.6 写出下列程序的执行结果。 6 写出下列程序的执行结果。 s=0; a=[12,13,14;15,16,17;18,19,20;21,22,23]; for k=a s=s+k; end disp(s');
先启动matlab,否则会 否则会…… 注: 先启动 否则会
3.程序的暂停 . 暂停程序执行可以用pause函数,其调用格式为: 函数, 暂停程序执行可以用 函数 其调用格式为: pause (延迟秒数 延迟秒数) 延迟秒数 pause 暂停程序,直到用户按任一键后程序继续 . 暂停程序, Ctrl+C 强行中止程序的运行。 强行中止程序的运行。 4.程序的书写 . 同一行可以写多个语句 各句之间用逗(分 号隔开 号隔开. 各句之间用逗 分)号隔开 同一语句写在不同行时用续行符 … 恰到好处的用标点、注释(查找 易读) 查找、 恰到好处的用标点、注释 查找、易读 保持程序的可读性
第3章 MATLAB程序设计 MATLAB程序设计 3.1 M文件 M文件 3.2 程序控制结构 3.3 函数文件 3.4 程序调试 3.5 程序举例
3.1 M文件的建立与打开 文件的建立与打开 1.建立新的M文件 .建立新的 文件 为建立新的M文件 启动文本编辑器有3种方法 文件, 种方法: 为建立新的 文件,启动文本编辑器有 种方法: (1) 菜单操作。从主窗口的File菜单中选择 菜单操作。从主窗口的 菜单中选择New下 下 菜单中选择 命令, 的M-file命令, 命令 (2) 命令操作。在MATLAB命令窗口输入命令 命令操作。 命令窗口输入命令 edit,输入 文件的内容并存盘。 文件的内容并存盘。 ,输入M文件的内容并存盘 (3) 命令按钮操作。单击 命令按钮操作。单击MATLAB主窗口工具栏 主窗口工具栏 上的New M-File命令按钮,启动 命令按钮, 上的 命令按钮 启动MATLAB文本 文本 编辑器后,输入M文件的内容并存盘 文件的内容并存盘。 编辑器后,输入 文件的内容并存盘。
(3) 多分支 语句: 多分支if语句: 语句 if 条件1 条件 语句组1 语句组 elseif 条件 条件2 语句组2 语句组 …… elseif 条件m 条件 语句组m 语句组 else 语句组 end
计算分段函数的值。 例3.2 计算分段函数的值。 程序如下: 程序如下: x=input('请输入 的值 请输入x的值 请输入 的值:'); if x<=0 y= (x+sqrt(pi))/exp(2) else y=log(x+sqrt(1+x*x))/2 end 输入一个字符,若为大写字母, 例3.3 输入一个字符,若为大写字母,则输出其对应的 小写字母;若为小写字母,则输出其对应的大写字母; 小写字母;若为小写字母,则输出其对应的大写字母; 若为数字字符则输出其对应的数值, 若为数字字符则输出其对应的数值,若为其他字符则原 样输出。 样输出。
例3.4 某商场对顾客所购买的商品实行打折销 标准如下(商品价格用 商品价格用price来表示 : 来表示): 售,标准如下 商品价格用 来表示 price<200 没有折扣 200≤price<500 3%折扣 折扣 500≤price<1000 5%折扣 折扣 1000≤price<2500 8%折扣 折扣 2500≤price<5000 10%折扣 折扣 5000≤price 14%折扣 折扣 输入所售商品的价格,求其实际销售价格。 输入所售商品的价格,求其实际销售价格。