欢迎来到我的范文网!

matlab编写程序判断数组或矩阵是否有整数

工作报告 时间:2020-02-26

【www.myl5520.com--工作报告】

实验三 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)<1000

f(k+1)=f(k)*2;

k=k+1;

end

f,k

调试后,将其以test1.m形式保存在D:\MATLAB中。

(3)命令行程序运行。进入命令窗口,键入test1,观察运行结果:

f =

Columns 1 through 9

2 4 8 16 32 64 128 256 512

Column 10

1024

k =

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),观察程序运行结果。

>> test2(9)

f =

2 4 8

ans =

2 4 8

2、编写一个函数M文件,计算下面函数的值,给出标量x的值,调用该函数后,返回y的值。

sinx,y(x)x,

x6,x00x3 x3

选择一些数据测试编写的函数。

源程序 :

function [y]=myfun(x)

if x<=0

y=sin(x);

elseif x>3

y=-x+6;

else

y=x;

end

运行结果:

>> test(0)

ans =

>> test(2)

ans =

2

>> test(5)

ans =matlab编写程序判断数组或矩阵是否有整数。

1

3、编写一个函数M文件,返回向量x中元素的和、平均值、最大值、最小值、均方根值。其中方均根值(Root Mean Square)的计算公式为:

rms并用下面数据测试你写的函数:

(1)x=sin(0:0.01:6*pi)

(2)x=rand(1,200),得到的x为200个(0,1)之间均匀分布的随

机数。

源程序:

function [sum_x,m_x,max_x,min_x,rsm_x] = myfun7(x)

sum_x=0;

a=x;

for k=a;

sum_x=sum_x+k;

n=length(x);

for i=1:n

m_x=sum_x/n;

end

end

min_x=x(1);

for t=1:n

if min_x>x(t)

min_x=x(t); end

end

max_x=x(1);

for t=1:n

if max_x<x(t)

max_x=x(t); end

end

sum_x1=0;

for t=1:n

sum_x1=sum_x1+x(t).^2; rms_x=sqrt(sum_x1/n); end

sum_x

m_x

max_x

min_x

rms_x

运行结果:

(1)

>> x=sin(0:0.01:6*pi); >> myfun7(x)

sum_x =

-2.1218e-004

m_x =

-1.1256e-007

max_x =matlab编写程序判断数组或矩阵是否有整数。

1.0000

min_x =

-1.0000

rms_x =

0.7071

2)

>> x=rand(1,200);

>> myfun7(x)

matlab实验四
篇二:matlab编写程序判断数组或矩阵是否有整数

本科实验报告

课程名称: Matlab电子信息应用

实验项目: M文件的编写

实验地点:

专业班级: 学号:

学生姓名:

指导教师:

2014年 5 月 21 日

一、实验目的

1.学习MATLAB中的关系运算和逻辑运算,掌握它们的表达形式和用法。 2.掌握MATLAB中的选择结构和循环结构。 3.学会用MATLAB进行M文件的编写和调用。

二、预备知识

1.关系和逻辑运算

关系运算符用来完成关系运算,在控制程序流程方面有着极为重要的作用。MATLAB常用的关系符有:<、>、<=小于或等于、>=大于或等于、==等于、~=不等于。

关系运算符可以用来比较两个数值,若所描述的关系成立,则结果为1,表示逻辑真,反之,若所描述的关系不成立,结果为0,表示逻辑假。

MATLAB中的逻辑运算符有&与、∣或、~非。 逻辑运算法则

2.选择结构 if语句和switch语句 if语句的一般形式如下: if A1 %表达式1 B1 %命令1

else if A2 %表达式2 B2 %命令2 else B3 %命令3 end

switch语句的一般结构如下:

switch a %读入一个语句 case A1 %情况1 B1 %命令1 case A2 B2 case .… …

other case %其余情况 Bn %最后一个命令 3.循环结构

for语句一般用于循环次数已知的情况,而while语句一般用于循环次数未知的情况。 for语句的格式为:for 变量=表达式 命令1 命令2 … end

while语句的格式为:while 表达式 命令 end

1. 实验内容与步骤

1. 创建一个矩阵,用函数all和any作用于该矩阵,比较结果。 2. 编写一个switch语句,判断输入数的奇偶性。

3. 编写一个程序画出下列分段函数所表示的曲面,并用M文件存储。

0.5457e0.75x23.75x11.5x122

fx1,x20.7575ex26x1

220.75x23.75x11.5x1

0.5457e

22

x1x211x1x21 x1x21

步骤1 打开MATLAB的M文件编辑器file/new/M-file,编写以下内容: %first.m This is my first example a=2;b=2;

x=-a:0.2:a;y=-b:0.2:b; for i=1:length(y)

for j=1:length(x) if x(j)+y(i)>1

z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2-1.5*x(j)); else if x(j)+y(i)<=-1

z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2+1.5*x(j)); else z(i,j)=0.7575*exp(-y(i)^2-6*x(j)^2); end end end end

axis([-a,a,-b,b,min(min(z)),max(max(z))]); colormap(flipud(winter));surf(x,y,z);

步骤2 选择file/save命令,将文件保存,命名为first.m。 步骤3 在command window窗口输入文件名,可看到图形。

四、练习matlab编写程序判断数组或矩阵是否有整数。

1.编写一程序计算n的阶乘。

>> jiecheng n=5 n = 5

120

2. 编写一个程序求出阶乘大于或等于99的最小整数。

99

>> bijiao ans = 120

3. 使用for函数编写一个程序实现sum(A)的功能,其中A为矩阵。

>> suma A=ones(3) A =

1 1 1 1 1 1 1 1 1 B =

3 3 3

4. 使用循环结构和向量化两种方法实现求数组的平方和平方根的计算,并计算程序运行时间。

Matlab实验三
篇三:matlab编写程序判断数组或矩阵是否有整数

2014秋2012级《MATLAB程序设计》实验报告

实验三 班级:软件122 姓名:张丽静 学号:122489 一、实验目的

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)<1000 f(k+1)=f(k)*2; k=k+1; end f,k

调试后,将其以test1.m形式保存在D:\MATLAB中。 (3) 命令行程序运行。进入命令窗口,键入test1,观察运行结果: (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),观察程序运行结果。

2、编写一个函数M文件,计算下面函数的值,给出标量x的值,调用该函数后,返回y的值。

sinx,y(x)x,

x6,

选择一些数据测试编写的函数。

x00x3 x3

3、编写一个函数M文件,返回向量x中元素的和、平均值、最大值、最小值、均方根值。其中方均根值(Root Mean Square)的计算公式为:

rms

并用下面数据测试你写的函数: (1) x=sin(0:0.01:6*pi)

>> x=sin(0:0.01:6*pi); >> y=text4(x)

(2) x=rand(1,200),得到的x为200个(0,1)之间均匀分布的随机数。

>> x=rand(1,200); >> y=text4(x)

4、编写一个函数M文件,若给出一个向量x[x1,x2,下范德蒙矩阵。

xn],函数返回如

1x1x12n1x1

1x2

2x2

n1x2

1xn2

xn n1

xn

1111

2345

,例如在命令窗口输入>>v=myvander([2 3 4 5]),得v

49162582764125

同时生成一些数据测函数。

5、分别使用while和for编写命令文件,用循环语句编程计算s值:

s(n3n2)

n2

10

同时对编写的文件设置断点,观察变量取值的变化情况。

6、数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如:

21

3105168421 63105168421

建立命令M文件,完成上述功能,要求显示数字处理过程。

7、设计一个学生身高的管理系统,输出身高的基本分为5等:很高、较高、中等、较矮、矮,其中190cm以上为“很高”,[180cm,190cm)区间为“较高”,[170cm,180cm)为“中等”,[1160cm,170cm)为“较矮”,160cm以下为“矮”,要求分别用if语句和switch语句实现

8、Fibonacci数组的元素满足Fibonacci规则:

ak+2=ak+ak+1,(k=1,2,3,„);且a1= a2=1。

请设计一段程序,求出该数组中第一个大于10000的元素

要求显示的结果为: i=21 a(i)=10946

或者 a(21)=10946

9、编写一个函数文件and.m,用于求两个输入矩阵的乘积和点乘,然后在命令行窗口中调用该函数,要求:

(1) 当两矩阵是尺寸相同的方阵时,返回它们的乘积和点乘。

(2) 当两矩阵不是尺寸相同的方阵时,则根据它们的尺寸,分别进行乘积或点乘

(3) 当两矩阵的尺寸不能满足乘积或点乘的要求时,则提示“这两个矩阵不能乘”

10、编写一个阶乘函数factorial.m,然后在如下程序中调用该函数, “分别使用for和while语句找出最小的n值,使得n!>10100,并求出n!” 11、下列程序用来判断一个人的体温是否处于危险状态。调试程序是否正确,如果程序错误指出错误在哪里?并写出正确答案。

temp=input(‘请输入体温: temp = ’); if temp < 36.5 disp(‘体温偏低’); elseif temp > 36.5

disp(‘体温正常’);

elseif temp > 38.0

disp(‘体温偏高!’);

elseif temp > 39

disp(‘体温高!!’);

end

12、使用嵌套for循环命令创建下列矩阵:

5

1A0

00

1

51000151000151

matlab编写程序判断数组或矩阵是否有整数。

000 15

>> text12();

matlab程序设计例题及答案
篇四:matlab编写程序判断数组或矩阵是否有整数

1.编写程序:计算1/3+2/5+3/7+……+10/21 法一:

s=0;

for i=1:10

s=s+i/(2*i+1);

end

s

s =

4.4096

法二:

sum((1:10)./(3:2:21))

ans =

4.4096

2.编写程序:计算1~100中即能被3整除,又能被7整除的所有数之和。

s=0;

for i=1:100

if mod(i,3)==0&&mod(i,7)==0

s=s+i;

end,end

s

s =

210

3.画出y=n!的图(1<=n<=10),阶乘的函数自己编写,禁用MATLAB自带的阶乘函数。 x=1:10;

for i=1:10

try y(i)=y(i-1)*i;

catch y(i)=1;

end,end

plot(x,y)

4

3.5

3

2.5

2

1.5

1

0.5

0x 10

612345678910

4.一个数恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1,2,3,而6=1+2+3,因此6就是一个完数。编程找出2000以内的所有完数。

g=[];

for n=2:2000

s=0;

for r=1:n-1

if mod(n,r)==0

s=s+r;

end

end

if s==n

g=[g n];

end

end

g

g =6 28 496

5.编写一个函数,模拟numel函数的功能,函数中调用size函数。

function y=numelnumel(x)

m=size(x);

y=m(1)*m(2);

numelnumel([1 2 3;4 5 6])

ans =

6

6. 编写一个函数,模拟length函数的功能,函数中调用size函数。

function y=lengthlength(x)

m=size(x);

y=max(m(1),m(2));

lengthlength([1 2 3;4 5 6])

ans =

3

7.求矩阵rand(5)的所有元素和及各行平均值,各列平均值。

s=rand(5);

sum=sum(sum(s))

mean2=mean(s,2)

mean1=mean(s)

sum =

13.8469

mean2 =

0.5583

0.5536

0.6554

0.4931

0.5090

mean1 =

0.6331 0.5006 0.6487 0.7124 0.2745

8.编程判断1001,1003,1007,1009,1011为素数,若不是,输出其约数。

function sushupd(x)

s=fix(sqrt(x));

p=1;

for i=2:s

if mod(x,i)==0

p=0;

break

end

end

if p==1

disp('该数是素数')

else g=[];

for i=1:x

if mod(x,i)==0

g=[g i];

end

end

disp('该数不是素数')

g

end

是否

sushupd(1001)

该数不是素数

g =

1 7 11 13 77 91 143 1001

>> sushupd(1003)

该数不是素数

g =

1 17 59 1003

>> sushupd(1007)

该数不是素数

g =

1 19 53 1007

>> sushupd(1009)

该数是素数

>> sushupd(1011)

该数不是素数

g =

1 3 337 1011

9.将[1563 35 4123 65 121233 356 57;

1223543 43 23 132 345 45 31]从小到大排序,排成一列,禁用sort函数。

s=[1563 35 4123 65 121233 356 57;1223543 43 23 132 345 45 31]; s=[s(1,:) s(2,:)];

for i=1:length(s)-1

for i=1:length(s)-1

if s(i)>s(i+1)

a=s(i);

本文来源:http://www.myl5520.com/fanwendaquan/101585.html

推荐内容