第4掌 MATLAB程序设计及应用实例4

合集下载

MATLAB程序设计及应用实例

MATLAB程序设计及应用实例

MATLAB程序设计及应用实例MATLAB程序设计及应用实例一、引言1.1 研究背景1.2 目的和意义二、MATLAB入门2.1 MATLAB的基本概念2.2 MATLAB环境的配置2.3 MATLAB的基本操作2.4 基本数据类型和变量2.5 控制语句和循环结构三、向量和矩阵运算3.1 向量的定义和运算3.2 矩阵的定义和运算3.3 矩阵的转置、共轭和逆3.4 特殊矩阵的和操作3.5 矩阵的行列式和特征值计算四、函数的定义和调用4.1 函数的定义和语法4.2 函数的输入和输出参数4.3 匿名函数和内嵌函数4.4 函数的调试和错误处理五、图形化界面设计5.1 MATLAB的图形化界面工具箱5.2 GUI的设计和布局5.3 控件的属性设置和事件处理5.4 图像的读取和处理5.5 图表的绘制和交互操作六、数据分析与统计6.1 数据的导入和导出6.2 数据的预处理和清洗6.3 常用的数据统计和分析方法6.4 数据可视化和结果展示七、信号处理与图像处理7.1 信号的和处理7.2 傅里叶变换和频域分析7.3 滤波器的设计和应用7.4 图像的读取和处理7.5 图像的增强和分割八、机器学习与深度学习8.1 机器学习算法的基本原理8.2 机器学习工具箱的使用8.3 深度学习算法的基本原理8.4 深度学习工具箱的使用8.5 实例:图像分类和预测九、应用实例9.1 实例1:图像处理与分析9.2 实例2:信号处理与模式识别9.3 实例3:数据挖掘与预测十、总结与展望10.1 主要研究成果总结10.2 存在的问题和不足10.3 下一步工作的展望本文档涉及附件:- 附件1:MATLAB代码示例- 附件2:实验数据集法律名词及注释:- 版权:对创作作品的控制权和使用权的法律保护。

- 许可证:允许某人使用或复制作品的法律文件。

《MATLAB_程序设计与应用》刘卫国高等教育出版社-第4章课后答案

《MATLAB_程序设计与应用》刘卫国高等教育出版社-第4章课后答案

第四章1.a=input('请输入一个4位数:');while (a<1000|a>9999)a=input('输入错误,请重新输入一个4位数:'); endb=fix(a/1000);c=rem(fix(a/100),10);d=rem(fix(a/10),10);e=rem(a,10);b=b+7;c=c+7;d=d+7;e=e+7;b=rem(b,10);c=rem(c,10);d=rem(c,10);e=rem(e,10);g=b;b=d;d=g;g=c;c=e;e=g;a=1000*b+100*c+10*d+e;disp(['加密后:',num2str(a)])2.逻辑表达式法:a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');x=0.5:1:5.5;x1=(x>=0.5&x<1.5);x2=(x>=1.5&x<3.5);x3=(x>=3.5&x<=5.5);y1=a.*(x.^2)+b.*x+c;y2=a*(sin(b)^c)+x;y3=log(abs(b+c./x));y=y1.*x1+y1.*x2+y3.*x3; disp(y)if语句法:a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');for x=0.5:1:5.5if x>=0.5 & x<1.5y=a.*(x.^2)+b.*x+celseif x>=1.5 & x<3.5y=a*(sin(b)^c)+xelseif x>=3.5 & x<5.5y=log(abs(b+c./x))endendswitch语句法:a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');for x=0.5:1:5.5switch floor(x/0.5)case {1,2}y=a.*(x.^2)+b.*x+c;case {3,4,5,6}y=a*(sin(b)^c)+x;case {7,8,9,10}y=log(abs(b+c./x)); enddisp(y)end3.x=fix(rand(1,20)*89)+10;x1=mean(x);n=find(rem(x,2)==0 & x<x1);disp(['小于平均数的偶数是:',num2str(x(n))]);4.(1)A=input('请输入20个数的一个行向量:');a=A(1);b=A(1);for m=Aif a>=ma=m;elseif b<=mb=m;endenddisp(['最小数是:',num2str(a)])disp(['最大数是:',num2str(b)])(2)A=input('请输入20个数的一个行向量:'); maxval=max(A)minval=min(A)5.s=0;for a=0:63c=2^a;s=s+c;enddisp(['2的0次方到63次方的和是:',num2str(s)])k=0:63n=2.^ks=sum(n)6.(1)sum1=0;for n=1:100x=(-1)^(n+1)*(1/n);sum1=sum1+x;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=0;for n=1:1000x=(-1)^(n+1)*(1/n);sum2=sum2+x;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=0;for n=1:10000x=(-1)^(n+1)*(1/n);sum3=sum3+x;enddisp(['当n取10000时:sum=',num2str(sum3)])(2)sum1=0;n1=0;for n=1:2:100x=(-1)^n1*(1/n);sum1=sum1+x;n1=n1+1;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=0;n2=0;for n=1:2:1000x=(-1)^n2*(1/n);sum2=sum2+x;n2=n2+1;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=0;n3=0;for n=1:2:10000x=(-1)^n3*(1/n);sum3=sum3+x;n3=n3+1;enddisp(['当n取10000时:sum=',num2str(sum3)])(3)sum1=0;for n=1:100x=1/(4^n);sum1=sum1+x;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=0;for n=1:1000x=1/(4^n);sum2=sum2+x;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=0;for n=1:10000x=1/(4^n);sum3=sum3+x;enddisp(['当n取10000时:sum=',num2str(sum3)])(4)sum1=1;for n=1:100x=4*n*n/(2*n-1)/(2*n+1);sum1=sum1*x;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=1;for n=1:1000x=4*n*n/(2*n-1)/(2*n+1);sum2=sum2*x;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=1;for n=1:10000x=4*n*n/(2*n-1)/(2*n+1);sum3=sum3*x;enddisp(['当n取10000时:sum=',num2str(sum3)])7.函数文件function f=fibnacci(n)if n==1 | n==2f=1;elsef=fibnacci(n-1)+fibnacci(n-2);end命令文件:shulie=[];for k=1:nshulie=[shulie fibnacci(k)];endshulie8.function [f1,f2]=juzhenji(x1,x2)f1=x1*x2;f2=x1.*x2;命令文件:clear alla=input('请输入一个矩阵:');b=input('请再输入一个矩阵:(注意:两矩阵要可以相乘)'); [f1,f2]=juzhenji(a,b);disp(f1)disp(f2)9.function sum=qiuhe(n,m)if n<=1sum=0;elsesum=n^m+qiuhe(n-1,m);end命令文件:clear ally=qiuhe(100,1)+qiuhe(50,2)+qiuhe(10,-1);disp(y)10.s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];for k=afor j=1:4if rem(k(j),2)~=0 s=s+k(j);endendendss =108(2)global xx=1:2:5;y=2:2:6;sub(y);xyfunction fun=sub(z) global xz=3*x;x=x+z;x =4 12 20 y =2 4 6。

MATLAB程序设计及应用实例

MATLAB程序设计及应用实例

MATLAB程序设计及应用实例MATLAB(Matrix Laboratory)是一种用于算法开发、数据分析、可视化和数值计算的高级技术计算语言和环境。

它的强大功能和灵活性使其成为各个领域研究和工程实践中广泛使用的工具。

下面将介绍几个MATLAB程序设计及应用的实例。

1.信号处理:MATLAB是信号处理的强大工具,它可以用于滤波、频谱分析、小波变换、分析和合成音频信号等。

例如,可以利用MATLAB进行语音信号的去噪处理,通过设计特定的滤波器来去除信号中的噪声成分,从而提取出清晰的语音信号。

2.图像处理:MATLAB可以进行图像的加载、处理和分析。

它提供了丰富的图像处理函数和工具箱,可以实现图像的滤波、二值化、边缘检测、图像增强等操作。

例如,可以使用MATLAB对医学图像进行分割,将感兴趣的区域提取出来,辅助医生进行病灶诊断。

3.控制系统设计:MATLAB是控制系统设计的有效工具。

它提供了丰富的控制系统分析和设计函数,可以进行系统建模、模拟和优化。

例如,可以使用MATLAB进行PID控制器的参数调整,通过对系统建模和后续仿真,优化PID控制器的参数,提高控制系统的性能和稳定性。

4.机器学习:MATLAB提供了强大的机器学习和深度学习工具箱,可以进行数据预处理、特征提取、模型训练和评估等操作。

例如,可以利用MATLAB进行图像分类,通过构建深度卷积神经网络模型,将输入的图像进行分类和识别。

5.数值计算:MATLAB对线性代数、数值优化和统计分析等有着强大的支持。

它提供的优化和求解函数可以解决复杂的线性和非线性优化问题,例如最小二乘拟合和参数估计等。

此外,MATLAB还拥有强大的统计分析工具,可以进行假设检验、数据拟合、方差分析等统计分析操作。

6.仿真模拟:MATLAB可以进行动态系统的建模和仿真,通过搭建系统方程和初始条件,可以对系统的动态响应进行模拟。

例如,在电力系统中,可以使用MATLAB进行电力系统稳定性分析,对电力系统的动态响应进行跟踪和分析。

Matlab数学软件应用举例

Matlab数学软件应用举例


MATLAB的发展史
70 年代中期 , 美国的穆勒教授在给学生开线 性代数课时,为了让学生能使用子程序库又不至于
在编程上花费过多的时间,便为学生编写了使用子
程序的接口程序。他将这个接口程序取名为 MATLAB,意为“矩阵实验室”。
80 年代初他们又采用 c 语言编写了 MATLAB 的
核心。目前 MATLAB 巳成为国际公认的最优秀的数
注释和标点
1. 百分号后的所有文字为注释,不参与运算。
例:syms x y
%定义符号变量x ,y
2. 多条命令可以放在同一行,用逗号或分号分隔,逗号表示要显示 该语句运行结果,分号表示不显示运行结果。 例:x=[2,3];y=[4,5];z1=x+y, z2=x’*y 结果:z1 = z2 = 6 8 12 8 10 15
(1) clc (2) clear (3) clf (4) who (5) whos (6) delete <文件名> (7) whech <文件名>
命令行的编辑与运行
( 9 ) clear all 从工作空间清除所有变量和函数 (10) help <命令名> 查询所列命令的帮助信息 (11) save name 保存工作空间变量到文件 name.mat (12) save name x y 保存工作空间变量 x y到文件 name.mat (13) load name 下载‘name’文件中的所有变量到工作空 间 (14) load name x y 下载‘name’文件中的变量x y到工作空间 (15) diary name1.m 保存工作空间一段文本到文件 name1.m … diary off (16) type name.m 在工作空间查看name.m文件内容 (17) what 列出当前目录下的m文件和mat文件

matlab编程案例

matlab编程案例

matlab编程案例标题:Matlab编程案例集锦1. 信号处理:使用Matlab编写一个程序,读取音频文件并对其进行频谱分析。

通过绘制频谱图,展示音频信号的频率特征,并进行简单的音频处理,如降噪、滤波等。

2. 图像处理:编写一个Matlab程序,读取一张彩色图像,并实现图像的灰度化、二值化、边缘检测、图像增强等图像处理操作。

通过比较处理前后的图像,展示算法的效果。

3. 机器学习:使用Matlab实现一个简单的线性回归模型。

根据给定的数据集,通过最小二乘法计算出最佳拟合直线,并绘制出拟合结果。

4. 数值计算:编写一个Matlab程序,实现牛顿迭代法求解非线性方程的根。

通过给定的初始值和迭代次数,计算方程的根,并展示迭代过程中的结果。

5. 数据可视化:使用Matlab绘制一个3D图像,展示一个球体的形状。

通过调整球体的半径和位置参数,观察球体形状的变化,并使用颜色映射显示球体的高度信息。

6. 控制系统:编写一个Matlab程序,设计一个PID控制器来控制一个二阶系统。

通过调整PID控制器的参数,观察系统的响应特性,并使用图表展示系统的步态响应、频率响应等。

7. 信号生成:使用Matlab生成一个复杂的信号,并对其进行时频分析。

通过绘制时频图,展示信号在时间和频率域上的变化特征,并分析信号的频谱分布。

8. 数字滤波器设计:编写一个Matlab程序,设计一个数字滤波器来对一个离散信号进行滤波。

通过选择合适的滤波器类型和参数,实现信号的去噪、平滑等效果。

9. 数字图像复原:使用Matlab对一张受到噪声污染的图像进行复原。

通过选择合适的图像复原算法,如维纳滤波、逆滤波等,实现图像的去噪和恢复。

10. 优化算法:编写一个Matlab程序,使用遗传算法来解决旅行商问题。

通过随机生成城市坐标和距离矩阵,求解旅行商的最优路径,并绘制出最优路径图。

以上是10个基于Matlab编程的案例,涵盖了信号处理、图像处理、机器学习、数值计算、数据可视化、控制系统、信号生成、数字滤波器设计、数字图像复原和优化算法等多个领域。

2024版《Matlab程序设计》课件

2024版《Matlab程序设计》课件

基本操作
演示如何在Matlab中进行基本操作,如输入命令、 查看变量、保存工作等。
快捷键与技巧
分享一些常用的快捷键和操作技巧,提高使用效 率。
2024/1/29
6
变量、数据类型与运算符
变量命名规则
说明在Matlab中如何给变量命名,以及命名时需要 注意的事项。
数据类型
介绍Matlab中常见的数据类型,如数值型、字符型、 逻辑型等,并给出相应的示例。
图像基本处理
包括灰度化、二值化、滤波等基本图像处理 操作。
图像变换
通过傅里叶变换、小波变换等方法对图像进 行频域分析和处理。
2024/1/29
图像增强
采用直方图均衡化、对比度拉伸等方法改善 图像质量。
33
动画制作和交互式绘图
2024/1/29
动画制作
01
使用for循环结合pause函数实现动画效果,展示数据动态变化
向量的加法和减法
对应元素相加或相减,要求两个向量的长度相同。
向量的点积和叉积
点积对应元素相乘后求和,叉积仅适用于三维向量,按照右手定则计 算。
向量的模和单位化
向量的模等于各元素平方和的平方根,单位化是将向量除以其模长得 到单位向量。
11
特殊矩阵和函数
对角矩阵
除对角线外其他元素均为零的方 阵。
上三角和下三角矩阵
15
条件判断语句
2024/1/29
switch语句
用于根据表达式的值执行不同的代码块。
语法
switch expression, case value1, statements1, case value2, statements2, ..., otherwise, statements, end

《MATLAB程序设计》第4章数组及应用

《MATLAB程序设计》第4章数组及应用
数组在内 存中的地 址
0x0012FF68 a[0] 0x0012FF6C a[1] 0x0012FF70 a[2] 0x0012FF74 a[3]
数组元素
0x0012FF78 a[4]
0x0012FF7C a[5]
8
一维数组在内存中的存储形式
说明:
(1)数组名a表示内存首地址,是地址常量。
(2)数组a中每个数组元素占的内存空间根据 数组类型确定,整个数组占的内存为:数组元 素个数乘以每个元素所占内存空间如: int a[10]; 4×10=40 float b[20]; 4×20=80 double c[5]; 8×5=40 char d[8]; 1×8=8
第4章 数组
教学内容
数组的定义及应用
字符串处理函数
几个常用算法:排序算法(选择排序、
冒泡排序)
1
第4章 数组
重点、难点
数组的定义及应用
常用算法的设计(选择排序、
冒泡排序)
2
第4章 数组
教学目标
熟练掌握数组的定义及应用
掌握字符数组的定义及应用
掌握常用的字符串处理函数
熟练掌握几个常用算法:排序
算法(选择排序、冒泡排序)
分析:所谓转置就是将矩阵的行列互换,即将 a矩阵 的a[i][j]元素变成b矩阵的b[j][i]。
24
#include <iostream> using namespace std; int main() { int a[3][4] ={{1,2,3,4},{3,4,5,6},{5,6,7,8}}; int b[4][3],i,j; for(i=0;i<3;i++) //输出二维数组a[3][4] { for(j=0;j<4;j++) cout<<a[i][j]<<" "; cout<<endl; } for(i=0;i<4;i++) //将矩阵a转置给矩阵b for(j=0;j<3;j++) b[i][j]=a[j][i]; for(i=0;i<4;i++) //输出二维数组b[4][3] { for(j=0;j<3;j++) cout<<b[i][j]<<" "; cout<<endl; } return 0;}

matlab实验4_循环结构程序设计_参考解答

matlab实验4_循环结构程序设计_参考解答

MATLAB 语言
2
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
实验四:循环结构程序设计
x1=a/(b+x0); y=abs(x1-x0); x0=x1; n=n+1; end x1
运行结果: x1 =
0.5616
(2) 程序设计: (i) 当(a,b)的取值为(1,1)时 clear all; close all; clc; a=1; b=1; x0=1.0; x1=0; n=1; y=abs(x1-x0); while n<=500 & y>10^(-5)
x1=a/(b+x0); y=abs(x1-x0); x0=x1; n=n+1; end x1 r1=(-b+sqrt(b^2+4*a))/2 r2=(-b-sqrt(b^2+4*a))/2
运行结果:
x1 = 3.1127
r1 = 3.1127
r2 = -3.2127
⎧ f1 = 1,
4.
已知
⎪⎪ ⎨ ⎪
f2 f3
= 0, = 1,
⎪⎩ fn = fn−1 − 2 fn−2 + fn−3 ,
n =1
n = 2 ,求 n=3
f1
~
f100 中:
n>3
(1) 最大值、最小值、各数之和。
(2) 正数、零、负数的个数。
MATLAB 语言
4
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
sum=0; for x=1:n
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(2)函数文件的调用
函数调用的一般格式: [输出实参表]=函数名(输入实参表)
注意:等号左边是方括号,右边输入参数用 括号
例5.1 编写函数文件求半径为r的圆的面积和周长
function [s,p]=fcircle(r) %FCIRCLE calculate the area and perimeter of a circle of radii r %r 圆半径 %s 圆面积 %p 圆周长 s=pi*r*r; p=2*pi*r; 以上函数文件以文件名fcircle.m存入 c:\matlab7\work\mas下,然后在MATLAB命令窗口 调用该函数: [s,p]=fcircle(10)
0
5.2 函数文件
(1) 函数文件的基本结构
函数文件由function语句引导 其基本结构为: function 输出形参表=函数名(输入形参表) %注释说明部分 函数体语句
(1) 函数文件的基本结构
函数文件的格式说明
(1)关于函数文件名: 函数文件名与函数名也可以不相 同(一般设为相同!)。当两者不同时,MATLAB将 忽略函数名而确认函数文件名,因此调用时使用函 数文件名。 (2)关于注释说明部分。注释说明包括三部分内容:① 紧随函数文件引导行之后以%开头的第一注释行。② 第一注释行及之后连续的注释行。③与在线帮助文 本相隔一空行的注释行。
5.3 数据的输入输出指令
input函数 ----提示用户从键盘输入数值和字符串等 pause函数 ----暂停,等待用户响应 dips 函数 ----输出相关内容
input函数
调用格式为:
A=input(‘提示信息’,选项);
其中提示信息为一个字符串,用于提示用户输入什么 样的数据。 如果在input函数调用时采用's'选项,则允许用户 输入一个字符串。例如,想输入一个人的姓名,可 采用命令:
(2)函数文件的调用
函数的递归调用 例:利用递归调用函数文件factor.m: function f=factor(n) if n<=1 f=1; else f=factor(n-1)*n; end 然后在MATLAB命令窗口调用该函数:
f=factor(5)
f=5!
(2)函数文件的调用
xm=input('What is your name?','s')
What is your name? xiaoqiang xm= xiaoqiang
pause函数
其调用格式为:
pause(延迟秒数)
如果省略延迟时间,直接使用pause,则将暂
停程序,直到用户按任一键后程序继续执行。
若要强行中止程序的运行可使用Ctrl+C命令。
程序如下:main5_3.m 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 %显示出错原因
5.4 选择结构-try语句
语句格式为: try 语句组1 catch 语句组2 end
try语句先试探性执行语句组1,如果语句组1在执行过 程中出现错误,则将错误信息赋给保留的lasterr变量, 并转去执行语句组2。这种试探性执行语句是其他高级 语言所没有的。
例 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先 求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘
函数所传递参数的可调性
在调用函数时,MATLAB用两个永久变量nargin 和nargout分别记录调用该函数时的输入实参和 输出实参的个数。只要在函数文件中包含这两 个变量,就可以准确地知道该函数文件被调用 时的输入输出参数个数,从而决定函数如何进 行处理
例:nargin用法示例
(2)函数文件的调用
m文件的类型是普通的文本文件,可以使用系 统认可的文本文件编辑器来建立m文件。如 dos下的edit,windows的记事本和word等。
M文件的分类
M文件有两类: 独立的m文件 — 称命令文件 可调用m文件 — 称函数文件 (1) 命令文件 — 简单的m文件
命令文件实际上是一串指令的集合,与在命令窗口 逐行执行文件中的所有指令,其结果是一样的。没 有输入输出参数。
双分支if语句格式为:
if 条件 语句组1 语句组2 end 当条件成立时,执行语句组1,否则执行语句组 2,语句组1或语句组2执行后,再执行if语句的 后继语句。
else
例 计算分段函数值
程序如下: x=input('请输入x的值:'); if x==10 y=cos(x+1)+sqrt(x*x+1); else y=x*sqrt(x+sqrt(x)); end y
M文件的建立与编辑
1.建立新的M文件
(1)菜单操作:MATLAB命令窗口的File菜单 → New 菜单项 → M-file命令.
M文件的建立与编辑
(2)命令操作:在MATLAB命令窗口输入命令edit。 (3)命令按钮操作:单击MATLAB命令窗口工具栏上 的“新建”命令按钮。
2. 编辑已有的M文件
% Copyright (c) 1984-94 by The MathWorks, Inc. s = svd(x); if (nargin == 1) tol = max(size(x)) * max(s) * eps; end r = sum(s > tol);
程序部分
命令m文件举例
例 建立一个命令文件将变量a,b的值互换,然 后运行该命令文件。
首先,建立m文件并以文件名exch.m存盘; 接着,在编辑窗口输入下列程序: clear; a=1:10; b=[11,12,13,14;15,16,17,18]; c=a;a=b;b=c; a b 书写完成,切忌保存。
在MATLAB的命令窗口中输入exch,将会 执行该命令文件。
(2) 函数m文件
disp函数
调用格式为
disp(输出项)
其中,输出项既可以为字符串,也可以为矩阵。
注意:用disp函数显示矩阵时将不显示矩阵的 名 字,而且其格式更紧密,且不留任何没有意 义的空行。
例5.2 求一元二次方程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))]);
5.4 选择结构- switch语句
switch语句
其语句格式为: switch 表达式 case 值1 语句组1 case 值2 语句组2 „„ case 值m 语句组m otherwise 语句组m+1 end
5.4 选择结构- switch语句

x=100 switch fix(x/10) case {9,10} disp('grade is A') case {8} disp('grade is B') case {7} disp('grade isC') case {6} disp('grade is D') otherwise disp('grade is E') end
(3)全局变量和局部变量
全局变量用命令global定义。 函数文件的内部变量是局部的,与其他函数文件及 MATLAB工作空间相互隔离 例 全局变量应用示例。 先建立函数文件wadd.m,该函数将输入的参数加权相加。
function f=wadd(x,y) global ALPHA BETA f=ALPHA*x+BETA*y; 在命令窗口中输入: global ALPHA BETA ALPHA=1; BETA=2; s=wadd(1,2)
需要输入变量,返回输出变量
matlab用户可以根据需要编辑自己的m文件,
它们可以像库函数一样方便的调用,从而极大地
扩展了matlab 的能力。 对于某一类特殊问题,如创建了许多m函数文件, 则可形成新的工具箱。 用matlab语言创建定义新的matlab函数的功 能,正体现了matlab语言强大的扩展功能。
函数文件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
命令文件main5_2.m:
x=[1:3];y=[1;2;3]; examp(x) %结果是ans=1 2 3 examp(x,y') %结果是ans=2 4 6 examp(x,y,3) %结果是ans=21
matlab内置函数文件
matlab自定义的函数文件称内置函数文件,因此,
属于函数m文件 调用内置函数的方法:使用函数名并给出相应的入 口、出口参数即可。 例如:sin.m函数——用type sin查不到。 调用格式:y=sin(2*x) 1 实际应用中: 0.8 x=0:2*pi/180:2*pi; 0.6 y=sin(2*x) 0.4 plot(x,y) 0.2
3. 多分支if语句
多分支if语句格式为: if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else 语句组m+1 end
例5.2 输入一个字符,若为大写字母,则输出其后继字 符,若为小写字母,则输出其前导字符,若为数字字符 则输出其对应的数值,若为其他字符则原样输出。 程序如下: 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
相关文档
最新文档