实验4 Matlab程序设计1
河北工业大学MATLAB实验四

2014秋2012级《MATLAB 程序设计》实验报告一、实验目的:1、掌握MATLAB 二维图形绘制命令及其图形控制;2、熟悉MATLAB 三维图形绘制命令及其图形控制;3、熟悉特殊二维图形、三维图形的绘制方法。
二、实验内容:1、在同一坐标系下绘制下面三个函数在[0,40]t ∈的图象,要求三种曲线采用不同颜色以及不同的线型,同时对每条曲线利用函数进行标注,并添加图例。
120.134sin()t y t y y e t π-===2、编写程序,选择合适的步距,绘制下面函数在区间[-6,6]中的图象,并对分段的曲线进行标注,同时添加x 轴和y 轴的说明。
sin ,0(),036,3x x y x x x x x ≤⎧⎪=<≤⎨⎪-+>⎩3、利用subplot 函数在同一绘图窗口中用不同颜色和线型绘制以下两个函数在t ∈[-2π,2π]范围内的图象。
0.50.21222t t y y e -==4、某学校有30位教师,其中教授5人,副教授8人,讲师12人,助教5人.试画出职称比例结构饼图,并强调图形的教授部分同时添加标注。
5、生成1×10维的随机数向量a ,分别用红、黄、蓝、绿色绘出其连线图、脉冲图、阶梯图和条形图,并分别标出标题“连线图”、“脉冲图”、“阶梯图”、“条形图”。
6、使用subplot 函数,把图形窗口分成两个部分,分别绘制sin2t 和3cos3t 曲线,t 范围:0-5.要求前者用红色实线,数据点形状为五角星,有网格线,x 轴加标注“x ”,y 轴加标注“y=sin2t ”,加题目“y=sin2t 的曲线”;后者用蓝色虚线,数据点形状为圆形,无网格线,x 轴加标注“x ”,y 轴加标注“y=3cos3t ”,加题目“y=3cos3t 的曲线”;7、绘制下列三维曲线:(1)/20/20cos sin ,02t t x e ty e t t z t π--⎧=⎪=≤≤⎨⎪=⎩ (2) 23,01x t y t t z t =⎧⎪=≤≤⎨⎪=⎩8、绘制下列曲面图,并调整三维图的视角、背景色、着色以及透视效果。
实验4 MATLAB绘图

实验四 MATLAB 绘图
4)在第一小题的基础上加入网格和标注。 3 绘制单位圆。 提示:使用 axis( ‘ square’ )命令保证图形的纵横坐标刻度比例相同。 4 设 R 分别为 1, 5, 10 和 20,绘制伏安特性曲线, U=RI。 5
⎧ x = t ⎪ 绘制方程 ⎨ y = sin(t ) 在 t=[0 ⎪ z = cos(t ) ⎩
三 实验内容
1 已知向量 [1, 2, 4, 0, 5, 10, 11, 21, 3, 1],请绘图表示。 2 绘制一条正弦曲线和一条余弦曲线,分别满足以下条件: 1)在同一窗口,正弦曲线用红色的点线表示,余弦曲线用蓝色的星型线表示; 2)在同一个窗口中,要求分割为一行两列的子图,子图 1 为正弦曲线,子图 2 为余弦曲线 ;(线形与上题一致 ); 3)在两个不同的窗口中绘制这两条曲线;
1
实验四 MATLAB 绘图
1) . 单 窗 口 单 曲 线 绘 图 x=[0, 0.48,0.84,1,0.91,0.6,0.14] plot (x) 2) . 单 窗 口 多 曲 线 绘 图 例: t=0:pi/100:2*pi; y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5); plot(t,y,t,y1,t,y2) 3) . 单 窗 口 多 曲 线 分 图 绘 图 subplot —— 子图分割命令 调用格式: subplot(m,n,p) —— 按从左至右,从上至下排列 4) . 多 窗 口 绘 图 figure(n) —— 创建窗口函数, n 为窗口顺序号。 例 t=0:pi/100:2*pi; y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5); plot(t,y) —— 自动出现第一个窗口 figure(2) plot(t,y1) —— 在第二窗口绘图 figure(3) plot(t,y2) ——在第三窗口绘图 5) .可 任 意 设 置 颜 色 与 线 型 plot(t,y,'r-',t,y1,'g:',t,y2,'b*') 6) .图 形 加 注 功 能 将标题、坐标轴标记、网格线及文字注释加注到图形上,这些函数为: title —— 给图形加标题 xlable —— 给 x 轴加标注 ylable —— 给 y 轴加标注 text —— 在图形指定位置加标注 gtext —— 将标注加到图形任意位置 grid on(off) —— 打开、关闭坐标网格线 legend —— 添加图例 axis —— 控制坐标轴的刻度 例: t=0:0.1:10 y1=sin(t);y2=cos(t);plot(t,y1,'r',t,y2,'b--'); x=[1.7*pi;1.6*pi]; y=[-0.3;0.8]; s=['sin(t)';'cos(t)']; text(x,y,s); title('正弦和余弦曲线 '); legend('正弦 ','余弦 ') xlabel('时间 t'),ylabel('正弦、余弦 ') grid
Matlab程序设计打印版

实验四 Matlab程序设计[实验目的]1.掌握字符串数组的创建和构造方法及常用字符串函数的使用。
2.熟练掌握MATLAB 控制流的使用方法。
3.熟悉M 脚本文件、函数文件的编写方法和技巧。
[实验原理]与数值数组相比,串数组在MATLAB 中的重要性较小,但不可缺少。
如果没有串数组及相应的操作,那么数据可视化、图形用户界面的制作将会遇到困难。
字符串与数值数组是两种不同的数据类,它们的创建方式也不同。
字符串的创建方式是:将待建的字符放在“单引号对”中。
注意,“单引号对”必须是在英文状态下输入,其作用是MATLAB 识别送来内容“身份”所必需的,如A=’This is an example!’;就创建了一个字符串A。
注意创建带单引号的字符串时,每个单引号符用“连续2 个单引号符”标识。
字符串的标识同数值数组同,而且也可以使用size 指令观察串数组的大小。
串数组的ASCII 码可以通过指令abs 和double 来获取,而用char 指令可以把ASCII 码变为串数组,另外,MATLAB 可以很好的支持中文字符串数组。
对于复杂串数组的创建,一是可以直接创建,但是要保证同一串数组的各行字符数相等,即保证各行等长,不推荐,太繁琐。
二是可以利用串操作函数创建多行数组,比如char, str2mat, strvcat 等,具体操作自己通过帮助体会。
另外还可以通过转化函数产生数码字符长,比如A_str=int2str(A) 就是把整数数组A 转换成串数组,如果是非整数将被四舍五入后再转换,类似的函数还有num2str(把非整数数组转换为串数组,常用于图形中数据点的标识)、mat2str(把数值数组转换成输入形态的串数组,常与eval 指令配用)。
假如想灵活运用MATLAB 去解决实际问题,想充分调动MATLAB——科学技术资源,想理解MATLAB 版本升级所依仗的基础,那么掌握M 脚本文件合函数的编写规则将十分有用。
程序设计实验报告(matlab)

程序设计实验报告(matlab)实验一: 程序设计基础实验目的:初步掌握机器人编程语言Matlab。
实验内容:运用Matlab进行简单的程序设计。
实验方法:基于Matlab环境下的简单程序设计。
实验结果:成功掌握简单的程序设计和Matlab基本编程语法。
实验二:多项式拟合与插值实验目的:学习多项式拟合和插值的方法,并能进行相关计算。
实验内容:在Matlab环境下进行多项式拟合和插值的计算。
实验方法:结合Matlab的插值工具箱,进行相关的计算。
实验结果:深入理解多项式拟合和插值的实现原理,成功掌握Matlab的插值工具箱。
实验三:最小二乘法实验目的:了解最小二乘法的基本原理和算法,并能够通过Matlab进行计算。
实验内容:利用Matlab进行最小二乘法计算。
实验方法:基于Matlab的线性代数计算库,进行最小二乘法的计算。
实验结果:成功掌握最小二乘法的计算方法,并了解其在实际应用中的作用。
实验六:常微分方程实验目的:了解ODE的基本概念和解法,并通过Matlab进行计算。
实验内容:利用Matlab求解ODE的一阶微分方程组、变系数ODE、高阶ODE等问题。
实验方法:基于Matlab的ODE工具箱,进行ODE求解。
实验结果:深入理解ODE的基本概念和解法,掌握多种ODE求解方法,熟练掌握Matlab的ODE求解工具箱的使用方法。
总结在Matlab环境下进行程序设计实验,使我对Matlab有了更深刻的认识和了解,也使我对计算机科学在实践中的应用有了更加深入的了解。
通过这些实验的学习,我能够灵活应用Matlab进行各种计算和数值分析,同时也能够深入理解相关的数学原理和算法。
这些知识和技能对我未来的学习和工作都将有着重要的帮助。
matlab实验4_循环结构程序设计_参考解答

高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
实验四:循环结构程序设计
clear all; close all; clc; y=0; n=1; while y<3
y=y+1/(2*n-1); n=n+1; end n=n-1; y=y-1/(2*n-1) n=n-1
运行结果:
y= 2.9944
x1=a/(b+x0); y=abs(x1-x0); x0=x1;
MATLAB 语言
3
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
实验四:循环结构程序设计
n=n+1; end x1 r1=(-b+sqrt(b^2+4*a))/2 r2=(-b-sqrt(b^2+4*a))/2
clear all; close all; clc; prime=[]; for n=2:49
x=n*(n+1)-1; signx=0; for k=2:sqrt(x)
MATLAB 语言
5
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
根据
π2 6
=1 12
+
1 22
+1 32
+"+
1 n2
,求 π 的近似值。当
n
分别取
100、1000、10000
时,
结果是多少?
要求:分别用循环结构和向量运算(使用 sum 函数)来实现。 答:程序设计:
(1) 循环结构
Matlab实验及答案

实验一、MATLAB基本操作一、实验目的2.学习使用图形函数计算器命令funtool及其环境。
3. 学习使用help命令进行帮助4. 掌握向量与矩阵的创建以及矩阵的基本操作5. 掌握数组与矩阵的概念二、实验内容熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;掌握数组与矩阵的概念;学会使用help命令进行帮助;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool;1.命令窗口的简单使用(1)简单矩阵的输入(自由创建)x=[1 3 5;2 4 6]x =1 3 52 4 6(2)求[12+2×(7-4)]÷32的算术运算结果,总结算术运算符先级[12+2*(7-4)]/3^2ans =22.有关向量、矩阵或数组的一些运算(1)设A=15;B=20;求C=A+B与c=a+b的区别A=15;B=20;>> C=A+BC =35>> c=a+bUndefined function or variable 'a'.(2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与A.*B,分析原因?(A*B是两个矩阵相乘,A.*B是对应元素相乘)A=[1 2 3;4 5 6;7 8 9];B=[9 8 7;6 5 4;3 2 1];>> A*Bans =30 24 1884 69 54138 114 90>> A.*Bans =9 16 2124 25 2421 16 9(3)设a=10,b=20;求i=a/b与j=a\ba=10;>> b=20;>> i=a/bi =0.5000>> j=a\bj =2(4)设a=[1 -2 3;4 5 -4;5 -6 7]请设计出程序,分别找出小于0的矩阵元素的线性索引以及行列索引(sub2ind/ind2sub)。
MATLAB实验四

MATLAB实验四MATLAB程序设计试验报告说明:1 做试验前请先预习,并独立完成试验和试验报告。
2 报告解答方式:将MATLAB执行命令和最后运行结果从命令窗口拷贝到每题的题目下面,请将报告解答部分的底纹设置为灰色,以便于批阅。
3 在页眉上写清报告名称,学生姓名,学号,专业以及班级。
3 报告以Word文档书写。
文档命名方式: 学号+姓名+_(下划线)+试验几.doc 如:110400220张三_试验1.doc4 试验报告doc文档以附件形式发送到******************。
凡文档命名不符合规范,或者发送方式不正确,不予登记。
一目的和要求(1)熟练掌握MATLAB的程序设计流程控制结构(2)熟练掌握M文件的结构(3)熟练掌握函数调用和参数传递(4)熟练掌握内联函数的使用(5)了解程序性能剖析窗口二内容和步骤1 (必做)编写M脚本文件,实现:1)从键盘逐个输入学生的某科成绩,计算学生的平均分并输出显示。
2)统计学生成绩分布,其中90分以上为A类,80~89分为B类,70~79分为C类,60~69分为D类,60分以下为E类,统计各类的学生人数,并打印显示。
3)将学生成绩保存到结构数组student. score域和统计成绩分布信息保存数组level中并存作为student. level域,最后把结构数组student保存到score. mat文件中。
(提示:1)成绩输入采用input函数,可采用while循环,提示用户连续输入学生成绩,直到用户输入负数成绩,终止成绩录入。
2)成绩保存可采用save函数)score=0;n=0;sum=0;a=0;b=0;c=0;d=0;e=0;while score>=0if score>=90a=a+1;elseif score>=80elseif score>=70c=c+1;elseif score>=60d=d+1;elsee=e+1;ends um=sum+score;n=n+1;score=input('score:');endaverage=sum/(n-1)fprintf(' A类人数:%d',a)fprintf(' B类人数:%d',c)fprintf(' C类人数:%d',c)fprintf(' D类人数:%d',d)fprintf(' E类人数:%d',e-1)2(必做)有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13... 采用循环迭代求出这个数列的前n项之和。
MATLAB课程设计

一、课程目的初步学会使用MATLAB软件,掌握MATLAB基本的函数的使用,熟练MATLAB编程,以便为今后数字信号的处理打下基础。
二、课程内容实验一 MATLAB语言基础实验目的:基本掌握 MATLAB 向量、矩阵、数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数。
了解字符串的操作。
实验内容:1、创建以下矩阵:A为3×4的全 1 矩阵、B为3×3的0矩阵、C 为3×3的单位阵、D为3×3的魔方阵、E由C和D纵向拼接而成、F抽取E的2~5行元素生成、G由F经变形为3×4的矩阵而得、以G为子矩阵用复制函数(repmat)生成6×8的大矩阵H。
源程序:A=ones(3,4)% A为3×4的全 1 矩阵B=zeros(3)% B为3×3的0矩阵C=eye(3)% C为3×3的单位阵D=magic(3)% D为3×3的魔方阵E=cat(1,C,D)% E由C和D纵向拼接而成F=E(2:5,:)% F抽取E的2~5行元素生G=reshape(F,3,4)% G由F经变形为3×4的矩阵而得H=repmat(G,2,2) %以G为子矩阵用复制函数(repmat)生成6×8的大矩阵H运行结果:A =1 1 1 11 1 1 11 1 1 1B =0 0 00 0 00 0 0C =1 0 00 1 0 0 0 1 D =8 1 6 3 5 7 4 9 2 E =1 0 0 0 1 0 0 0 1 8 1 6 3 5 7 4 92 F =0 1 0 0 0 1 8 1 6 3 5 7 G =0 3 1 1 0 1 5 6 8 0 0 7 H =0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 6 8 0 0 7 8 0 0 7 0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 6 8 0 0 7 8 0 0 72、(1)用矩阵除法求下列方程组的解 x=[x 1;x 2;x 3];⎪⎩⎪⎨⎧-=---=++-=++73847523436321321321x x x x x x x x x (2) 求矩阵的秩;(3) 求矩阵的特征值与特征向量; (4) 矩阵的乘幂与开方; (5) 矩阵的指数与对数; (6) 矩阵的提取与翻转。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验4 Matlab 程序设计1
实验目的:
1、 掌握建立和执行M 文件的方法;
2、 掌握实现选择结构的方法;
3、 掌握实现循环结构的方法。
实验内容:
1. 从键盘输入一个4位整数,按如下规则加密后输出。
加密规则:每位数字都加上7,然
后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。
2. 求分段函数的值。
,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 值。
3. 输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E ,其中90~100分为A ,80~89
分为B ,70~79分为C ,60~69分为D ,60分以下为E 。
要求:
(1) 分别用if 语句和swich 语句实现。
(2) 输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
4. 硅谷公司员工的工资计算方法如下:
(1) 工作时数超过120小时者,超过部分加发15%;
(2) 工作时数低于60小时者,扣发700元;
(3) 其余按每小时84元计发。
试编程按输入的工号和该号员工的工时数,计算应发工资。
5.设计程序,完成两位数的加、减、乘、除四则运算。
即:输入两个两位随机整数,再输
入一个运算符号,做相应的运算,并显示相应的结果。
6.建立5×6矩阵,要求输出矩阵的第n行元素。
当n值超过矩阵的行数时,自动转为输
出矩阵的最后一行元素,并给出出错信息。
7.产生20个两位随机整数,输出其中小于平均数的偶数。
实验代码及实验结果
1.
>> a=input('请输入一个四位整数:');
请输入一个四位整数:9988
>> a1=fix(a/1000);
>> a2=rem(fix(a/100),10);
>> a3=rem(fix(a/10),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);
>> b=a1;a1=a3;a3=b;
>> b=a2;a2=a4;a4=b;
>> c=a1*1000+a2*100+a3*10+a4;
>> disp(c)
2.
x=input('请输入x的值:');
if x<0 & x~=-3
y=x.^2+x-6;
elseif x>=0 & x<5 & x~=2 & x~=3 y=x.^2+5.*x+6
else
y=x.^2-x-1;
end
3.
(1)if语句:
a=input('请输入成绩:');
if a>=90 & a<=100
disp('A');
elseif a>=80 & a<90
disp('B');
elseif a>=70 & a<80
disp('C');
elseif a>=60 & a<70
disp('D');
elseif a<60 &a>=0
disp('E');
else
disp('输入有误!'); end
(2)switch语句:
a=input('请输入成绩:'); switch fix(a/10)
case{9}
disp('A');
case{8}
disp('B');
case{7}
disp('C');
case{6}
disp('D');
case num2cell(2:5)
disp('E')
otherwise
disp('输入有误!');
end
4.
n=input('请输入工号:');
a=input('请输入工作小时数:');
if a>=120
y=a*84+a*84*0.15;
elseif a<120 & a>=60
y=a*84;
else
y=a*84-700;
disp(y);
end。