matlab上机习题4 MATLAB7.0基本编程
- 格式:doc
- 大小:29.50 KB
- 文档页数:5
15、今有多项式P1(x)=x4-2x+1,P2(x)=x2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),然后计算xi=0.2*i各点上的P(xi)(i=0,1,2,…,5)值。
p1=[1.0 0.0 0.0 -2.0 1.0];>> p2=[0.0 0.0 1.0 4.0 -0.5];>> p1x=poly2sym(p1);p2x=poly2sym(p2);>> p=p1x+p2xp =x^4+2*x+1/2+x^2>> x=0:5;>> x.^4+2*x+1/2+x.^2ans =0.5000 4.5000 24.5000 96.5000 280.5000 660.50001、试个MATLAB的工作空间中建立以下2个矩阵:A=[1 2]1234B⎡⎤=⎢⎥⎣⎦,求出矩阵A和B的乘积,并将结果赋给变量C。
>> A=[1 2]A =1 2>> B=[1 23 4]B =1 23 4>> C=A*BC =7 102、利用MATLAB提供的帮助信息,了解inv命令的调用格式,并作简要说明。
help invINV Matrix inverse.INV(X) is the inverse of the square matrix X.A warning message is printed if X is badly scaled ornearly singular.See also SLASH, PINV, COND, CONDEST, LSQNONNEG, LSCOV. Overloaded methodshelp gf/inv.mhelp zpk/inv.mhelp tf/inv.mhelp ss/inv.mhelp lti/inv.mhelp frd/inv.mhelp sym/inv.mhelp idmodel/inv.m3、使用help命令查询函数plot的功能以及调用方法,然后利用plot命令绘制函数y=sin(x)的图形,其中0xπ≤≤。
Matlab 上机练习题及答案---------------------------------------------------------------------1、矩阵Y=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡3472123100451150425,给出元素1的全下标和单下标,并用函数练习全下标和单下标的转换,求出元素100的存储位置。
取出子矩阵⎥⎦⎤⎢⎣⎡21301,并求该矩阵的维数。
解:命令为:Y=[5,2,4;0,15,1;45,100,23;21,47,3]Y(2,3)Y(10)sub2ind([43],2,3)[i,j]=ind2sub([43],10)find(Y==100)sub2ind([43],3,2)B=Y(2:2:4,3:-2:1)或B=Y([24],[31])[m n]=size(Y)---------------------------------------------------------------------2、已知矩阵A=[10-1;241;-205],B=[0-10;213;112]求2A+B 、A 2-3B 、A*B 、B*A 、A.*B ,A/B 、A\B 解:命令为:A=[10-1;241;-205]B=[0-10;213;112]E=2*A+B F=A^2-3*B G=A*B H=B*A I=A.*B J=A/B K=A\B---------------------------------------------------------------------3、利用函数产生3*4阶单位矩阵和全部元素都为8的4*4阶矩阵,并计算两者的乘积。
解:命令为:A=eye(3,4)B=8*ones(4)C=A*B---------------------------------------------------------------------4、创建矩阵a=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡------7023021.5003.120498601,取出其前两列构成的矩阵b ,取出前两行构成矩阵c ,转置矩阵b构成矩阵d ,计算a*b 、c<d ,c&d,c|d ,~c|~d 解:命令为:a=[-1,0,-6,8;-9,4,0,12.3;0,0,5.1,-2;0,-23,0,-7]b=a(:,[12])c=a([12],:)d=b’e=a*b f=c<d g=c&d h=c|d i=~c|~d---------------------------------------------------------------------5、求!201∑=n n 解:命令文件为sum=0;s=1;for n=1:20s=n*s;sum=sum+s;end sum---------------------------------------------------------------------6、求a aa aaa aa a S n ++++=得值,其中a 是一个数字,由键盘输入,表达式中位数最多项a 的个数,也由键盘输入。
1 一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。
输出全部水仙花数。
for m=100:999m1=fix(m/100); %求m的百位数字m2=rem(fix(m/10),10); %求m的十位数字m3=rem(m,10); %求m的个位数字if m==m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endend2.从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。
sum=0;n=0;val=input('Enter a number (end in 0):');while (val~=0)sum=sum+val;n=n+1;val=input('Enter a number (end in 0):');endif (n > 0)summean=sum/nend3. 若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。
求[1,500]之间的全部完数。
for m=1:500s=0;for k=1:m/2if rem(m,k)==0s=s+k;endendif m==sdisp(m);endend4. 从键盘上输入数字星期,在屏幕上显示对应英文星期的单词。
function weekn=input('input the number:');if isempty(n)errror('please input !!')endif n>7|n<1error('n between 1 and 7')endswitch ncase 1disp('Monday')case 2disp('Tuesday')case 3disp('Wednesday')case 4disp('Thursday')case 5disp('Friday')case 6disp('Saturday')case 7disp('Sunday')end5. 某公司销售电脑打印机的价格方案如下:()如果顾客只买一台打印机,则一台的基本价格为$150。
1.以下两种说法对吗?(1)MATLAB进行数值的表达精度与其指令窗中的数据显示精度相同。
(2)MATLAB指令窗中显示的数据有效位数不超过七位。
2.历史指令窗所记录的内容与diary指令所产生的“日志”内容有什么不同?DIARY filename causes a copy of all subsequent command window inputand most of the resulting command window output to be appended to thenamed file. If no file is specified, the file 'diary' is used.DIARY OFF suspends it.DIARY ON turns it back on.DIARY, by itself, toggles the diary state.Use the functional form of DIARY, such as DIARY('file'),when the file name is stored in a string.3.如何把用户自己的“工作目录”永久地设置在MATLAB的搜索路径上?“位于搜索路径上的目录”与“当前目录”在MATLAB中的功用相同吗?4.如何向MATLAB工作空间输入一个含有100个左右元素的一维或二维数值数组?用直接键入法?用数组编辑器?用M文件编辑器?5.运用数组算术运算符去掉下面程序里的for/end循环:x=11:15for k=1:length(x)z(k)=x(k)^2+2.3*x(k)^0.5;endx=11:15 z1=x.^2+2.3*x.^0.56.不使用数组算术运算符,重写下面的程序代码:x=[2 1 4]z=1./(1+x.^2)x=2;k=1;while i<=4,z2(k)=1/(1+i^2);i=i+1;x=x+1;end7.某公司销售电脑打印机的价格方案如下:()如果顾客只买一台打印机,则一台的基本价格为$150。
matlab练习题Matlab是一种高级的技术计算软件,被广泛应用于科学与工程领域。
通过编写Matlab代码,我们可以解决各种数学问题、进行数据分析和可视化、进行仿真等。
本文将提供一些针对初学者的Matlab练习题,帮助读者熟悉Matlab的基本语法和常用操作。
练习一:矩阵运算在Matlab中,矩阵运算是一项重要的操作。
请编写Matlab代码完成以下任务:1. 创建两个3×3的矩阵A和B,元素的值自行选择。
2. 计算矩阵A和B的和,并将结果存储在变量C中。
3. 计算矩阵A和B的乘积,并将结果存储在变量D中。
4. 计算矩阵A的转置,并将结果存储在变量E中。
提示:使用Matlab的矩阵运算符和内置函数可以简化代码编写过程。
练习二:函数编写与图形绘制Matlab是一个功能强大的数学软件,可以用来编写自定义的函数并进行图形绘制。
1. 编写一个Matlab函数,该函数可以计算任意输入整数n的阶乘,并将结果输出。
2. 调用该函数,计算并输出5的阶乘。
3. 使用Matlab绘制函数y=2x+1的图像,其中x的取值范围为-10到10。
提示:使用Matlab的plot函数可以实现图形的绘制,并可使用grid函数添加刻度线。
练习三:数据分析Matlab提供了丰富的数据分析工具和函数,可以用来处理和分析实验数据。
1. 编写一个Matlab脚本,实现对给定实验数据进行统计分析的功能。
2. 实验数据保存在文本文件data.txt中,每行包含一个数据点。
读取数据并将其存储在一个向量中。
3. 计算数据的均值、方差和标准差,并将结果输出。
4. 使用Matlab的直方图函数绘制数据的频率分布直方图。
提示:使用Matlab的readmatrix函数可以读取文本文件中的数据。
调用mean、var和std函数可以计算均值、方差和标准差。
利用histogram函数可以绘制直方图。
练习四:数值解与绘图Matlab具有强大的数值计算和绘图功能,可以用来求解方程和绘制函数图像。
第二、三次上机练习:目的:运行课本第四章及课堂上讲过的例子,掌握Matlab 的流程控制语句、函数及脚本文件的编程、调试方法。
作业:1、 完成下列操作:1) 求[100,999]之间能被21整除的个数。
2) 建立一个字符串向量(要求字符串向量中必须包含自己的姓名首字母,大小写均可),删除其中的大写字母2. 编写脚本文件,实现用magic(6)产生一矩阵,用for 循环指令求解其所有元素的和。
3. 定义一个函数文件,求∑=ni m i 1,要求在函数文件中包含能够通过help 查询到的说明;然后调用该函数文件求∑∑∑===++101501210011k k k k k k 的值。
4. 已知)7.1cos(12ln )7.1sin(++++=x xx y π,当x 取-3.0,-2.9,-2.8,…,2.8,2.9,3.0时, 1) 求各点的函数值;2) 求这些数据的平均值;5、求分段函数的值。
222603565231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩, 且, 0且及, 其它用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5时的值。
6、输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。
其中90分~100分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。
要求:分别用if 语句和switch 语句实现。
7、根据222221111...,6123n ππ=++++求的近似值。
当n 分别取100、1000、10000时,结果是多少?(要求:分别用循环结构和向量运算来实现)8、已知n=1时,f 1=1;n=2时,f 2=0;n=3时,f 3=1;n>3时,f n =f n-1 -2f n-2+ f n —3; 求f 1~ f 100中,最大值、最小值以及各数之和。
MATLAB计算与编程练习题参考答案以下是MATLAB计算与编程练习题的参考答案,希望能对您的学习有所帮助。
1. 编写一个MATLAB程序,计算并输出1到100之间所有奇数的和。
```matlabsum = 0;for i = 1:2:100sum = sum + i;enddisp(sum);```2. 编写一个MATLAB函数,接受一个参数n,计算并返回1到n之间所有偶数的平方和。
```matlabfunction result = even_squared_sum(n)result = 0;for i = 2:2:nresult = result + i^2;end```3. 编写一个MATLAB程序,生成并输出一个5x5的随机矩阵,然后计算并输出矩阵的转置。
```matlabmatrix = randi([1, 10], 5, 5);disp(matrix);transposed_matrix = matrix';disp(transposed_matrix);```4. 编写一个MATLAB函数,接受两个参数a和b,计算并返回a和b的最大公约数。
```matlabfunction gcd = compute_gcd(a, b)while b ~= 0temp = b;b = mod(a, b);a = temp;gcd = a;end```5. 编写一个MATLAB程序,读取一个文本文件,统计并输出文件中每个字符的出现次数。
```matlabfilename = 'text.txt';file = fopen(filename, 'r');content = fscanf(file, '%c');fclose(file);characters = unique(content);count = zeros(size(characters));for i = 1:length(characters)count(i) = sum(content == characters(i));enddisp([characters; count]);```6. 编写一个MATLAB程序,生成一个100个元素的斐波那契数列,并绘制该数列的图形。
matlab基础练习题(带答案)Matlab 基础练习题常量、变量、表达式1、 MATLAB 中,下⾯哪些变量名是合法的?()(A )_num (B )num_ (C )num- (D )-num 2、在MA TLAB 中,要给出⼀个复数z 的模,应该使⽤()函数。
(A )mod(z) (B )abs(z) (C )double(z) (D )angle(z) 3、下⾯属于MATLAB 的预定义特殊变量的是?()(A )eps (B )none (C )zero (D )exp4、判断:在MA TLAB 的内存⼯作区中,存放⼀个英⽂字符 'a' 需要占⽤1个字节,存放⼀个中⽂字符‘啊’需要占⽤2个字节。
(错,都是2个字节)5、判断:MA TLAB 中,i 和j (对)6、判断:MA TLAB 中,pi 代表圆周率,它等于3.14。
(错,后⾯还有很多位⼩数)7、在MA TLAB 中,若想计算的51)3.0sin(21+=πy 值,那么应该在MA TLAB 的指令窗中输⼊的MA TLAB 指令是__y1=2*sin(0.3*pi)/(1+sqrt(5))_。
8、在MA TLAB 中,a = 1,b = i ,则a 占_8__个字节,b 占_16_个字节,c 占________字节。
9、在MA TLAB 中,inf 的含义是__⽆穷⼤__,nan 的含义是__⾮数(结果不定)___。
数组1、在MA TLAB 中,X 是⼀个⼀维数值数组,现在要把数组X 中的所有元素按原来次序的逆序排列输出,应该使⽤下⾯的()指令。
(A )X[end:1] (B )X[end:-1:1] (C )X (end:-1:1) (D )X(end:1) 2、在MA TLAB 中,A 是⼀个字⼆维数组,要获取A 的⾏数和列数,应该使⽤的MATLAB的命令是()。
(A )class(A) (B )sizeof(A) (C )size(A) (D )isa(A)3、在MATLAB 中,⽤指令x=1:9⽣成数组x 。
13sin 25457.0145.175.375.0222-++=---y e x z x y x练习一:1) 以两种方式打开 MA TLAB 工作窗口,进入MATLAB 6.0 的工作环境,并尝试用不同的方式退出。
2) 尝试、熟悉 MA TLAB 6.0 的各栏菜单以及各个工具栏的功能。
3) 重新启动 MATLAB 6.0,进入 MATLAB 工作窗口,用 who 命令查看当前工作空间内有无变量及其值。
4) 绘制函数y=cos(5x+2)/sin(3x+1) 的图像,并求解当 x=2 时的函数值。
5) 此时再次用 who 命令查看工作空间内的变量名及其值,与( 3)比较,同时用whos 命令查看变量,比较与 who 命令的不同。
6) 熟练掌握 MATLAB 的通用命令。
7) 练习并熟练掌握 MA TLAB 的帮助命令,学会利用 MATLAB 的帮助信息。
8) 用 lookfor 命令查找函数 cos 的信息,并与 help 命令查找的结果相比较,注意采用两种命令之间的差别。
练习二: 1) 创建一个表达式式并求当x =1, y =2时的z 值。
2) 计算i x y 108++=的值,其中451-+-=x 。
3) 创建一个包含“ 她是我们班最好的学生”字符串。
练习三:1) 将如下矩阵 A 进行转置和求逆。
⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----=412303214A 2) 在MATLAB 环境下,用下面三条指令创建矩阵 C ,看输出怎样的结果。
a=2.7358;b=33/79; C =[1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i]练习三:3) 用 rand 函数建立一个 3×3 维随机数值矩阵,并将该数值矩阵转换为符号矩阵,比较它们的不同。
4) 求下述矩阵的逆、特征根和矩阵的行列式值。
⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=333231232221131211a a a a a a a a a A ,⎥⎦⎤⎢⎣⎡=22211211a a a a A 练习四: 1) 用曲面图命令 surf 表现函数 22y x z +=的图像。
实验一Matlab基本操作练习一、实验目的(1)了解和学会使用matlab平台的命令窗口、帮助窗口、编辑窗口、工作空间。
(2)学会使用matlab的.m文件、.mat文件(3)学会基本的矩阵赋值、运算和查找等操作(4)了解for循环、while循环的执行过程(5)掌握函数的定义和调用的基本方法二、实验内容1、了解save命令和load命令的使用。
操作步骤:(1)在命令窗口输入如下命令:clear ;savefile = 'TestFile.mat';p = rand(1, 4);q = ones(10);r = ones(10,2);save(savefile, 'p', 'q', 'r')(2)观察并记录下当前工作空间中的变量;(3)输入如下命令:clear;(4)观察当前工作空间中的变量;(5)在命令窗口输入如下命令:load TestFile(6)观察当前工作空间中的变量;2、练习基本的数学运算(1)逐句输入并运行以下命令,观察每一步的运行结果,弄明白每一条语句的含义。
(2)计算A*inv(C),将结果与divrAC比较计算A*inv(C),将结果与divrAC比较3、练习矩阵定位函数find的使用逐句输入并运行以下命令,观察每一步的运行结果,弄明白每一条语句的含义。
clear;X = [1 0 4 -3 0 0 0 8 6]Indices1 = find(X)indices2=find(X>=6)clear;A=[3 2 0; -5 0 1]Indices3=find(A)[row,col,value]=find(A)4、练习for循环和while循环的使用操作步骤:(1)在命令窗口输入如下命令clear ;clc;(2)在命令窗口输入如下命令,并观察s1的值:a=1:100;s1=0;for k=1:100s1=s1+k;end(3)在命令窗口输入如下命令,并观察s2的值:s2=0;k=1;while k<=100s2=s2+k;k=k+1;end(4)在命令窗口输入如下命令,并观察s3的值:s3=sum(a);[s1 s2 s3]5、练习函数的定义和调用;定义和调用一个连续求和的函数SumOfN,能实现功能:给一个参数n,求出从1到n连续求和的结果。
实验四 MATLAB7.0基本编程
实验目的:
① 掌握脚本和函数;
② 掌握matlab 中的变量和M 文件的流控制语句;
③ 掌握函数的设计和实现。
实验要求:给出程序和实验结果。
实验内容:
一、一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。
输出全部水仙花数。
二、从键盘输入若干个数,当输入10时结束输入,求这些数的平均值和它们之和。
三、求[1000,2000]之间第一个能被17整除的整数。
四、若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。
求[1,10000]之间的全部完数。
五、Fibonacci 数列定义如下:
1
f =1 2f =1
12,(2)
n n n f f f n --=+> 求Fibonacci 数列的第20项。
六、设计一个猜数游戏。
首先由计算机产生[1,100]之间的随机整数,然后由用户猜测所产生的随机数。
根据用户猜测的情况给出不同提示,如猜测的数大于产生的数,则显示“High”,小于则显示“Low”,等于则显示“You won”,同时退出游戏。
用户最多可以猜7次。
实验结果:
1.
x=[];
for i=100:999
n1=fix(i/100);
n2=fix((i-n1*100)/10);
n3=i-n1*100-n2*10;
if(n1^3+n2^3+n3^3)==i
x=[x i];
end
end
x
x =
153 370 371 407
2.
m=input('请输入数据')
for i=1:length(m)
if m(i)==10
B=sum(m);
end
end
B
C=B/length(m)
请输入数据[16 15 14 13 12 10]
m =
16 15 14 13 12 10
B =
80
C =
13.3333
3.
B=[];
for x=1000:2000
a=mod(x,17); if (a==0)
B=[B x]; end
end
B(1)
ans =
1003
4.
>> for m=1:500 s=0;
for k=1:m/2
if rem(m,k)==0
s=s+k;
end
end
if m==s
disp(m);
end
end
6
28
496
5.
function y=myFab(n)
if n<3
y=1;
else
y=myFab(n-1)+myFab(n-2);
end
>> y=myFab(20)
y =
6765
6.
>> a=fix(rand(1)*100+1);
for k=1:7
n=input('输入一个1—100的整数:n='); if n>a
disp('High');
elseif n<a
disp('Low');
else
disp('You won')
break
end
if k==7
disp('You lost')
end
end
输入一个1—100的整数:n=50
Low
输入一个1—100的整数:n=60 Low
输入一个1—100的整数:n=70 High
输入一个1—100的整数:n=65 High
输入一个1—100的整数:n=63 Low
输入一个1—100的整数:n=64 You won。