实验三 MATLAB 程序设计

合集下载

实验三_M_文件及_MATLAB_程序设计与调试

实验三_M_文件及_MATLAB_程序设计与调试

实验三M 文件及MATLAB 程序设计与调试一、实验目的全面掌握在MA TLAB 下进行程序设计的有关问题,具体涉及到M 脚本文件和M 函数文件的编写、全局和局部变量的使用、流程控制结构、提高程序执行效率的设计技术、程序调试等问题。

二、实验内容1、关于M 脚本文件和M 函数文件MATLAB 的M 文件有两类:脚本文件和函数文件。

(1)脚本文件——将原本要在MATLAB 的指令窗口中直接输入的语句,放在一个以.m 为后缀的,称为脚本文件中。

有了脚本文件,可直接在MATLAB 中输入脚本文件名(不含后缀)。

MATLAB 会打开这一脚本文件,并依次执行脚本文件中的每一条语句,这与在MATLAB 中直接输入语句的结果完全一致。

(2)函数文件——它的第一行必须是函数定义行。

M 函数文件由5 部分构成:◆函数定义行◆H1 行◆函数帮助文本◆函数体◆注释注意:在函数文件中,除了函数定义行之外,其它部分都是可以省略的。

但作为一个函数,为了提高函数的可用性,应加上H1 行和函数帮助文本,为了提高函数的可读性,应加上适当的注释。

例如:function y = mean(x)% MEAN Average or mean value.% For vectors, MEAN(X) is the mean value of the elements in X.% For matrices, MEAN(X) is a row vector containing the mean value of each column.[m,n]=size(x);if m==1% Determine whether x is a vectorm=n;endy = sum(x)/m;①函数定义行:function y = mean(x)function 为函数定义的关键字,mean 为函数名,y 为输出变量,x 为输入变量当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。

实验3 MATLAB程序设计

实验3 MATLAB程序设计

实验3 MATLAB程序设计实验3 MATLAB程序设计一、实验目的本实验的主要目的是通过实际的编程练习,掌握和熟悉MATLAB 程序设计的基本知识和技巧。

通过本实验的学习,能够灵活使用MATLAB进行程序设计,解决实际问题。

二、实验内容1. MATLAB语言基础在本部分,我们将介绍MATLAB语言的基本语法和常用函数的使用方法。

1.1. 变量定义和赋值在MATLAB中,可以通过简单的语法来定义和赋值变量。

例如,`a = 10;`表示将值10赋给变量a。

,MATLAB也支持定义矩阵和向量。

1.2. 数学运算MATLAB提供了丰富的数学运算函数,如加法、减法、乘法、除法等等。

通过这些函数,我们能够进行各种数学运算。

1.3. 条件语句和循环语句条件语句和循环语句在程序设计中非常重要。

在MATLAB中,我们可以使用if-else语句来进行条件判断,使用for循环和while 循环来实现循环操作。

2. MATLAB绘图功能MATLAB的绘图功能非常强大,可以用于绘制各种图形,如曲线图、散点图、柱状图等等。

2.1. 绘制曲线图在MATLAB中,通过`plot`函数可以绘制曲线图。

我们可以指定要绘制的曲线的x和y坐标,并可以设置其他参数,如线型、颜色等。

2.2. 绘制散点图通过`scatter`函数可以绘制散点图。

散点图用于展示数据的分布情况,非常直观。

2.3. 绘制柱状图通过`bar`函数可以绘制柱状图。

柱状图用于比较不同类别或不间点的数据。

3. MATLAB文件操作在实际的程序设计过程中,常常需要读取和写入文件。

MATLAB 提供了相关的文件操作函数,方便我们进行文件的读写操作。

3.1. 文件的读取通过`fopen`函数可以打开一个文件,通过`fread`函数可以读取文件的内容。

3.2. 文件的写入通过`fopen`函数可以创建一个文件,并通过`fwrite`函数将数据写入文件中。

三、实验步骤1. 编写MATLAB程序根据实验内容,编写MATLAB程序实现相应功能。

实验三 Matlab程序设计

实验三  Matlab程序设计

实验三Matlab程序设计一、实验目的:掌握MATLAB程序编辑、运行及调试方法,M文件建立方法,函数文件建立方法,程序设计方法。

二、实验内容:1、启动MATLAB后,点击File|New|M-File,启动MATLAB的程序编辑及调试器(Editor/Debugger),编辑以下程序,点击File|Save保存程序,注意文件名最好用英文字符。

点击Debug|Run运行程序,在命令窗口查看运行结果,程序如有错误则改正。

注:数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。

重复此过程,最终得到的结果为1。

如:2→13→10→5→16→8→4→2→16→3→10→5→16→8→4→2→1运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。

%classic "3n+1" problem from number theory.while 1n=input('Enter n,negative quits:');if n<=0breakenda=n;while n>1if rem(n,2)==0n=n/2;elsen=3*n+1;enda=[a,n];endaend2.编写如下M 文件,试调整参数a 的大小,观察并记录y1、y2 的波形特征。

然后,保存内存工作区变量a、t、y1、y2 到example1.mat 文件;关闭Matlab,再重新启动;观察内存工作区;重新根据.mat 文件恢复原来的工作区变量。

在命令窗口中查看exp 函数的帮助;运行helpwin 查看超文本格式的帮助文件,试翻译并记录下信号处理工具箱(Signal Processing Toolbox)中的函数分类(Functions -- Categorical List)。

3、编程求满足∑=>mi i 1100002的最小m 值。

Matlab实验三答案

Matlab实验三答案

Matlab实验三答案实验三 MATLAB语⾔的程序设计⼀、实验⽬的:1、熟悉MATLAB程序编辑与设计环境2、掌握各种编程语句语法规则及程序设计⽅法3、函数⽂件的编写和设计4、了解和熟悉跨空间变量传递和赋值⼆、实验基本知识:1、程序流程控制语句for循环结构语法:for i=初值:增量:终值语句1……语句nend说明:1.i=初值:终值,则增量为1。

2.初值、增量、终值可正可负,可以是整数,也可以是⼩数,只须符合数学逻辑。

while 循环结构语法:while 逻辑表达式循环体语句end说明:1、whiIe结构依据逻辑表达式的值判断是否执⾏循环体语勾。

若表达式的值为真,执⾏循环体语句⼀次、在反复执⾏时,每次都要进⾏判断。

若表达式的值为假,则程序执⾏end之后的语句。

2、为了避免因逻辑上的失误,⽽陷⼊死循环,建议在循环体语句的适当位置加break语句、以便程序能正常执⾏。

(执⾏循环体的次数不确定;每⼀次执⾏循环体后,⼀定会改变while 后⾯所跟关系式的值。

)3、while循环也可以嵌套、其结构如下:while逻辑表达式1循环体语句1while逻辑表达式2循环体语句2end循环体语句3endelse if 表达式2(可选)语句2else(可选)语句3endend说明:1.if结构是⼀个条件分⽀语句,若满⾜表达式的条件,则往下执⾏;若不满⾜,则跳出if结构。

2.else if表达式2与else为可选项,这两条语句可依据具体情况取舍。

3.注意:每⼀个if都对应⼀个end,即有⼏个if,记就应有⼏个end。

switch-case结构语法:switch表达式case常量表达式1语句组1case常量表达式2语句组2……otherwise语句组nend说明:1.switch后⾯的表达式可以是任何类型,如数字、字符串等。

2.当表达式的值与case后⾯常量表达式的值相等时,就执⾏这个case后⾯的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执⾏otherwise后的执⾏语句。

实验3 MATLAB程序设计

实验3 MATLAB程序设计

实验3 MATLAB程序设计电子信息工程系实验报告课程名称: MATLAB语言成绩:实验工程名称:实验3 MATLAB程序设计实验时间:2022-4-6 指导教师〔签名〕: 1. 实验目的学习函数的编制,掌握MATLAB的编程应用。

通过不同的程序结构和不同的实际编程问题,掌握MATLAB 的编程方法。

2.实验环境硬件:PC机,根本配置CPU PII以上,内存4G以上;软件:Matlab 版本7.1 3.实验原理MATLAB是一个专门的数学软件,特别是对矩阵进行操作,可以方便快捷的进行矩阵运算,从而简化了人们的脑力,同时能更加准确地计算结果。

4.实验内容及结果分析4.4编写一个程序,计算出坐标系中用户指定两点(X1,Y1)和(X2,Y2)之间的距离。

要求有输入、输出及其相关提示。

编写程序如下: clc; clear;X1=input('please input X1=');Y1=input('Y1='); X2=input('X2=');Y2=input('Y2=');s=sqrt((X1-X2) +(Y1-Y2) );fprintf('两点距离'); disp(s)4.5双曲余弦的定义如下:,编写一个程序,计算出用户指定的x 的值对应的双曲余弦值。

用这个程序计算双曲余弦值的假设干值,并和MATLAB 中的内建函数cosh(x)得到的值比拟看看是否完全相同。

并用MATLAB 打印出这个函数的图象。

编写程序如下:clc; clear;x=input('please input x='); coshx=(exp(x)+exp(-x))/2; disp(coshx) x=1, cosh=1.5431 x=2,cosh=3.7622 x=3,cosh=10.0677可得与内建函数值相等。

图1 利用plot函数绘图4.6电子工程:负载的最大输出功率一个内阻Rs=50Ω,电动势V=120V 的电源驱动一个负载RL。

实验三 MATLAB程序设计

实验三  MATLAB程序设计

实验三 MATLAB 程序设计
1、目的和要求
(1)熟练掌握MATLAB 的程序流程控制结构。

(2)熟练掌握M 文件的结构。

(3)熟练掌握函数调用和参数传递。

2、内容和步骤
参见教材实验五。

3、实验报告提交要求
用for 语句、while 和函数调用三种方式分别对下述两题进行编程,并上机进行操作、运行出结果。

(1) +-+-+-
=)!
2()1(!4!21cos 242n x x x x n
n for 语句方式:
While 语句方式:
函数调用方式:
(2) ++-++-+-=++1
)1(432)1ln(
1
432n x x x x x x n n (-1<x ≤1) for 语句方式:
While 语句方式:
函数调用方式:
(3) ⋯
++⋯+++=!!22!11n x x x e n
x
for 语句方式:
While 语句方式:
函数调用方式:
(4)用所学的流程控制结构编写程序,使其能求ax2+bx+c=0方程的解。

提示根据以下几种情况考虑:
① a=0,不是二次方程;② b2-4ac=0,有两个相等实根;
③ b2-4ac>0,有两个不等实根;④ b2-4ac<0,有两个共轭复根。

① a=0,不是二次方程;
② b2-4ac=0,有两个相等实根;
③ b2-4ac>0,有两个不等实根;
④ b2-4ac<0,有两个共轭复根。

(5)完成P305页中第五章第6题编程,要求用函数式文件完成。

注:函数式文件需说明文件保存名是什么。

实验三MATLAB程序设计

实验三MATLAB程序设计

2014秋2012级《MATLAB程序设计》实验报告班级:软件C121姓名:冯杨腾学号:125692实验三 MATLAB程序设计一、实验目的1、掌握建立和执行M文件的方法。

2、掌握选择结构、多分支选择结构程序的编程方法。

3、掌握多种循环结构程序的编程方法。

4、掌握定义函数文件和调用函数文件的方法。

二、实验内容1、MATLAB M文件的创建与使用。

(1)建立自己工作目录,如D:\MATLAB。

在File菜单中,单击Set Path菜单项,在弹出对话框中建立目标文件夹,:单击Add Folder按钮,将自己的工作目录D:\MATLAB添加到搜索目录之中,按Save按钮保存,如图1。

图1 工作目录设置(2)在M文件编辑器中编制命令行文件。

在File菜单中,单击New—>M-File,弹出M文件编辑器,如图2:图2 编辑器在编辑器中输入如下命令程序:%求小于2000且为2的整数次幂的正整数。

f(1)=2;k=1;while f(k)<1000f(k+1)=f(k)*2;k=k+1;endf,k调试后,将其以test1.m形式保存在D:\MATLAB中。

(3)命令行程序运行。

进入命令窗口,键入test1,观察运行结果:f =Columns 1 through 92 4 8 16 32 64 128 256512Column 101024k =10(4)按上述步骤,在在编辑器中输入如下函数文件:function f=tt(n)%求小于任何正整数且为2的整数次幂的正整数。

%c=n(n)%n 可取任意正整数。

%2004年8月。

f(1)=2; k=1;while f(k)<ceil(n/2) %ceil 函数取最近的正整数 f(k+1)=f(k)*2; k=k+1; end f调试后,将其以test2.m 形式保存在D:\MATLAB 中。

(5)进入命令窗口,键入test2(9),观察程序运行结果。

实验3 MATLAB程序设计

实验3 MATLAB程序设计

实验3 MATLAB程序设计实验3 MATLAB程序设计实验目的1. 学习使用MATLAB进行程序的设计与实现;2. 掌握MATLAB函数的编写与调用方法;3. 掌握MATLAB的编程基础知识。

实验内容编写一个MATLAB程序,实现以下功能:1. 输入一个正整数n;2. 判断该正整数是否为素数;3. 如果是素数,输出该数;4. 如果不是素数,输出该数的所有质因数;输出该数的最大质因数;输出该数的因数个数。

实验步骤3. 编写一个函数`isPrime`,用于判断一个数字是否为素数。

函数定义如下:matlabfunction result = isPrime(n)result = 1; % 假设n是素数if n <= 1result = 0; % 排除小于等于1的数字return;endfor i = 2:sqrt(n)if mod(n, i) == 0result = 0; % n可以被i整除,所以n不是素数break;endendend4. 在主函数中,调用`isPrime`函数判断输入的数字是否为素数,并输出结果;5. 如果输入的数字不是素数,编写一个函数`primeFactors`,用于计算数字的所有质因数,并输出结果。

函数定义如下:matlabfunction primeFactors(n)factors = ; % 存储质因数的数组for i = 2:nwhile mod(n, i) == 0factors = [factors i]; % i是n的质因数n = n / i;endendfprintf('该数的质因数为:');disp(factors);end6. 继续在主函数中,如果输入的数字不是素数,调用`primeFactors`函数计算所有质因数并输出;7. 在主函数中,编写一个函数`maxPrimeFactors`,用于计算数字的最大质因数,并输出结果。

函数定义如下:matlabfunction maxFactor = maxPrimeFactors(n)factors = ; % 存储质因数的数组for i = 2:nwhile mod(n, i) == 0factors = [factors i]; % i是n的质因数n = n / i;endendmaxFactor = max(factors); % 计算最大质因数end8. 继续在主函数中,调用`maxPrimeFactors`函数计算数字的最大质因数并输出;9. 在主函数中,编写一个函数`factorCount`,用于计算数字的因数个数,并输出结果。

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

实验三MATLAB 程序设计
题目:
1,编写M 函数实现求一个数是否为素数,再编写一主程序(脚本文件),要求通过键盘输入一个整数,然后调用判断素数函数,从而确定它是否素数。

2,编写M 函数统计一数值中零的个数,然后编写脚本文件,实现统计从1—2007 中零的总个数。

3,编写程序计算x∈[-3,3],字长0.01:
4, p158 t6
5, p158 t8
6, p158 t9
7, 有n 个人围成一圈,按顺序编号。

从第1 个人开始报数,数到m 时该人退出,并且下一个从1 重新开始报数。

求出出圈人的顺序。

程序:
1.
%脚本文件
x=input('请输入一个整数 x:'); if myprime(x)
disp('您输入的整数x是一个素数。

')
else
disp('您输入的数x不是一个素数。

')
end %myprime函数
function y=myprime(x) y=1;
for i=2:fix(sqrt(x)) if mod(x,i)==0
y=0;
end
end
运行结果:
请输入一个整数 x:9
您输入的数x不是一个素数。

2.
%脚本文件
s=0;
for i=1:2007
s=s+my_total_0(i); end
s %my_total_0函数
function y=my_total_0(x) y=0;
n=fix(log10(x))+1;
for i=1:n
y=y+~mod(x,10);
x=fix(x/10);
end
运行结果:
s =
506
3.
function y=chap4_3(step,linestyle)
y=0;
x1=-3:step:-1-step;
x2=-1:step:1-step;
x3=1:step:3;
y1=(-x1.^2-4*x1-3)/2;
y2=-x2.^2+1;
y3=(-x3.^2+4*x3-3)/2;
x=[x1,x2,x3];
yy=[y1,y2,y3];
plot(x,yy,linestyle)
运行结果:
>>y=chap4_3(0.01,'ro')
4.
function a=chap4_4(n)
ch=menu('选择矩阵形式','[-10,10]均匀分布','[-5,5]均匀分布','[-1,1]均匀分布','正态分布');
switch ch
case 1,a=10-20*rand(n);
case 2,a=5-10*rand(n);
case 3,a=1-2*rand(n);
case 4,a=randn(n);
end
运行结果:
>> a=chap4_4(1)
a =
-9.0026
>> a=chap4_4(2)
a =
2.6886 0.1402
-1.0684 -3.9130
>> a=chap4_4(3)
a =
-0.5242 -0.6428 -0.5839
0.0871 0.1106 -0.8436
0.9630 -0.2309 -0.4764
>>a=chap4_4(4)
a =
-0.4326 -1.1465 0.3273 -0.5883 -1.6656 1.1909 0.1746 2.1832 0.1253 1.1892 -0.1867 -0.1364 0.2877 -0.0376 0.7258 0.1139 5.
function y=chap4_5(I)
n=length(I);
for i=1:n
if I(i)<=10
y(i)=0.1*I(i);
elseif I(i)<=20
y(i)=0.05*(I(i)-10)+1; elseif I(i)<=40
y(i)=0.02*(I(i)-20)+1.5; else
y(i)=0.01*(I(i)-40)+1.9; end
end
y=[1:n;I;y];
运行结果:
>> y=chap4_5(25) y =
1.0000
25.0000
1.6000
6.
function y=chap4_6(n) x(1)=1;
x(2)=2;
%求出费波纳契序列
for i=3:n+1
x(i)=x(i-2)+x(i-1); end %求出各项
for i=1:n
a(i)=x(i+1)/x(i); end
%求出前n项和
y=sum(a);
运行结果:
>> y=chap4_6(15)
y =
24.5701
7.
function y=chap4_7(m,n) x=1:n;
for i=1:n
N=n+1-i;
t=mod(m,N);
if t==0 t=N;end
y(i)=x(t);
x=[x(t+1:N),x(1:t-1)]; end
运行结果:
>>y=chap4_7(7,20)
y =
Columns 1 through 11
7 14 1 9 17 5 15 4 16 8 20 Columns 12 through 20
13 11 10 12 19 6 18 2 3。

相关文档
最新文档