数学建模与MATLAB第七讲FOR循环与二维绘图_第1页
数学建模与MATLAB第七讲FOR循环与二维绘图_第2页
数学建模与MATLAB第七讲FOR循环与二维绘图_第3页
数学建模与MATLAB第七讲FOR循环与二维绘图_第4页
数学建模与MATLAB第七讲FOR循环与二维绘图_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数学建模与MATLAB第七讲FOR循环与二维绘图2024/5/19for语句§7.1数学建模与MATLAB2for语句结构for语句是执行已知循环次数的运算for语句的结构为:for循环变量=初始值:步长:终止值执行代码块end如果步长为1可以省略数学建模与MATLAB3例题一求累加和。如:1+2+3+…+100%求1+2+3……+100s=0;fori=1:100s=s+i;endfprintf('1+2+3……+100=%d\n',s);数学建模与MATLAB4思考:①1*3*5……*99②n!=1×2×3×…n在实际MATLAB编程中,为提高程序的执行速度,常用向量运算来代替循环操作:y=sum(1:100)例题二判断一个数是否为素数?在大于1的自然数中,除了1和此整数自身外,不能被其他自然数(不包括0)整除的数,称之为素数(或质数)。数学建模与MATLAB5编程方法一:

循环变量i

从2开始,到该整数x

的1/2为止,用x依次依次除以i,只要能被任何一个i整除,就不是一个素数,否则是素数。参考代码%判断输入的数字是否为素数,考虑计算量数字不超过1000x=input('请输入一个正整数:');数学建模与MATLAB6fori=2:fix(x/2)ifmod(x,i)==0break;endendifi==fix(x/2)fprintf('%d是一个素数!',x);elsefprintf('%d不是一个素数!',x);end有因子,程序非正常终止无因子,程序正常终止排除法:如果有因子,不再往下判断是否是素数输入2或3会怎样?使用矩阵作为循环变量for语句更一般的格式:

for循环变量=矩阵表达式循环体语句

end

执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。实际上,“表达式1:表达式2:表达式3”是一个仅为一行的矩阵(行向量),因而列向量是单个数据。数学建模与MATLAB7例题三已知5个学生4门学科的成绩,求每名学生的总成绩程序如下:s=0;a=[65,76,56,78;98,83,74,85;76,67,78,79;98,58,42,73;67,89,76,87];fork=as=s+k;enddisp(s);数学建模与MATLAB8提高要求:求每门学科的平均分课堂练习某旅行团有男人、女人和小孩共30人,在纽约一家小饭馆里吃饭,该饭馆按人头收费,每个男人收3美元,每个女人收2美元,每个小孩收1美元,共收取50美元。共有多少组解?(答案:9组解)数学建模与MATLAB9参考答案forx=1:30fory=1:30forz=1:30if(3*x+2*y+1*z)==50&(x+y+z)==30fprintf('有%d个男人,%d个女人,%d个孩子!\n',x,y,z);endendendend数学建模与MATLAB10能否提高速度?数学建模与MATLAB11%算法二i=0;forx=1:15fory=1:23forz=1:28i=i+1;if(3*x+2*y+1*z)==50&(x+y+z)==30fprintf('有%d个男人,%d个女人,%d个孩子!\n',x,y,z);endendendendfprintf('一共运算了%d次!\n',i);%算法三i=0;forx=1:15fory=1:23i=i+1;if3*x+2*y+(30-x-y)==50fprintf('有%d个男人,%d个女人,%d个孩子!\n',x,y,(30-x-y));end

endendfprintf('一共运算了%d次!\n',i);%算法四x=input('人数:');y=input('钱:');total=0;k=0;fori=1:fix(y/3)forj=1:fix((y-i*3)/2)if2*i+j+x==ytotal=total+1;fprintf('男%d女%d小孩%d\n',i,j,x-i-j)endk=k+1;endendfprintf('一共运算了%d次!\n',k);fprintf('一共有%d组解!\n',total);二维绘图§7.2数学建模与MATLAB12基本的绘图命令数学建模与MATLAB13函数名功能plot在线性坐标系中绘制二维图形loglog在对数坐标系中绘制二维图形semilogx二维图形绘制,x轴为对数坐标,y轴为线性坐标semilogy二维图形绘制,x轴为线性坐标,y轴为对数坐标plotyy绘制双y轴图形基本的绘图步骤数学建模与MATLAB14步骤典型代码1.准备绘图数据x=0:0.2:12;y1=bessel(1,x);2.选择一个窗口并在窗口中给图形定位figure(1),subplot(2,2,1)3.调用基本的绘图函数h=plot(x,y1,x,y2,x,y3);4.选择线型和标记特性set(h,'LineWidth',2,{'LineStyle'},{'--';':';'-.'})7.设置坐标轴的极限值、标记符号和网格线axis([012-0.51])6.使用坐标轴标签、图例和文本对图形进行注释xlabel('Time')ylabel('Amplitude')7.输出图形print-depsc-tiff-r200myplotplot函数plot函数的调用格式为:plot(Y)plot(X1,Y1,...)plot(X1,Y1,LineSpec,...)plot(...,'PropertyName',PropertyValue,...)plot(axes_handle,...)h=plot(...)hlines=plot('v6',...)数学建模与MATLAB15plot(Y)该命令中的Y可以是向量、实数矩阵或复数向量。如果Y是向量,则以向量的索引为横坐标,以向量元素值为纵坐标绘制图形,以直线段顺序连接各点;如果Y是矩阵,则绘制Y的各列;如果Y是复向量,则以复数的实部为横坐标,虚部为纵坐标绘制图形,即plot(Y)相当于plot(real(Y),imag(Y)),而在其他的绘图格式中复数的虚部会被忽略。数学建模与MATLAB16例7.2.1某工厂2006年各月总产值(单位:万元)分别为22、60、88、95、56、23、9、10、14、81、56、23,试绘制折线图以显示出该厂总产值的变化情况。程序如下:

p=[22,60,88,95,56,23,9,10,14,81,56,23];plot(p)plot(x,y)该命令中的x和y可以为向量和矩阵,当x和y的结构不同时,有不同的绘制方式。x、y均为n维向量时,以x的元素为横坐标,y的元素为纵坐标绘制图形。x为n维向量,y为m×n或n×m矩阵时,以x的元素为横坐标,绘制y的m个n维向量。x、y均为m×n矩阵时,以x的各列为横坐标,y的对应列为纵坐标绘制图形。数学建模与MATLAB17例7.2.2在0≤X≤2π区间内,绘制曲线y=2e-0.5xsin(2πx)。程序如下:

x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y)数学建模与MATLAB18plot(x,y,LineSpec)允许用户对线条定义的属性有:(1)线型、颜色和标记类型:参数LineSpec用字符串表示,定义线条的三个属性:线型、标记符号和颜色,如表5-1所示。(2)线条宽度'LineWidth':指定线条的宽度,取值为整数(单位为像素点)。(3)标记大小'MarkerSize':指定标记符号的大小尺寸,取值为整数(单位为像素)。(4)标记面填充颜色'MarkerFaceColor':指定用于填充标记符面的颜色。(5)标记周边颜色'MarkerEdgeColor':指定标记符颜色或者是标记符周边线条的颜色。数学建模与MATLAB19plot(x,y,LineSpec)数学建模与MATLAB20符号线类型符号颜色符号点类型符号点类型-实线(缺省值)r红色+加号s正方形g绿色o小圆圈d棱形--虚线b兰色*星号^向上三角:点线y黄色.实点v向下三角-.点划线k黑色x交叉号>向右三角(空白)不划线或实线w白色p五角星<向左三角c青色h六角星subplot(m,n,k)将一图形窗口分成m×n个小窗口(子图),k是子图的编号,序号原则是:左上方为第一幅,向右、向下依次排号。例7.2.3x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);subplot(1,2,1),plot(x,y,'m*')subplot(1,2,2),plot(x,y,'rd')数学建模与MATLAB21plotyy(x1,y1,x2,y2)绘制双纵坐标二维图形,x1和y1所对应的图形的纵坐标%标注在图形的左边,x2和y2所对应的图形的纵坐标标注在图形的右边例7.2.4用不同标度在同一坐标内绘制曲线y1=e-0.5xsin(2πx)及曲线y2=1.5e-0.1xsin(x)。程序如下:

x1=0:pi/100:2*pi;x2=0:pi/100:3*pi;y1=exp(-0.5*x1).*sin(2*pi*x1);y2=1.5*exp(-0.1*x2).*sin(x2);plotyy(x1,y1,x2,y2);数学建模与MATLAB22迭加绘图holdon保留当前图形与当前坐标轴的属性值,后面的图形命令只能在当前存%在的坐标轴中增加图形holdoff在画新图形之前,重新设置坐标轴的属性为缺省值,关闭holdon功能例7.2.5将y=sinx和z=0.5sinx,x∈[0,2π]绘制在同一个图上。x=0:0.01:2*pi;y=sin(x);plot(x,y,'b');holdon;z=0.5*sin(x);plot(x,z,'g');holdoff数学建模与MATLAB23课后练习在同一坐标中绘制下列两条曲线并标注两曲线交点y1=sin(3t)cos(t)y2=sin(3t)sin(t)0<=t<=pi数学建模与MATLAB24补充知识§7.3数学建模与MATLAB25将生成的MATLAB图形导出File菜单GenerateM-File:生成M文件。该命令可以将当前图形窗口中的图形自动转化为M文件。Saveas:将图片另存为jpg、png等图片格式。ExportSetup:导出设置。可以设置颜色、字体、大小等,可以将图像以多种格式导出,如emf、bmp、jpg、pdf等。数学建模与MATLAB26Edit菜单Edit菜单CopyOptions…:将图形复制到剪切板;FigureProperties…,点击该选项,弹出窗口如图所示。在该窗口中可以设置图形的属性,包括图形窗口的标题、颜色映射表、图形彩色等,另外,点击“MoreProperties…”可以设置更多属性,点击“ExportSetup…”可以设置图像导出属性。AxesProperties…,点击该选项弹出窗口如图所示。在该窗口中可以设置图形坐标系的属性,包括标题、坐标轴标记、范围等。CurrentObjectProperties…,设置当前对象的属性,即图形中当前选中的对象,包括坐标轴、曲线、图形等。数学建模与MATLAB27Insert菜单在图像中插入对象,如箭头、直线、椭圆、长方形、坐标轴等。Insert中的选项及对应的功能如表所示:数学建模与MATLAB28选项功能选项功能XLabel插入X轴Arrow插入箭头YLabel插入Y轴TextArrow插入文本箭头ZLabel插入Z轴DoubleArrow插入双箭头Title插入标题TextBox插入文本框Legend添加图例Rectangle插入矩形Colorbar添加颜色条Ellipse插入椭圆Line插入直线Axes添加坐标系Light亮度控制Tools菜单Tools菜单包括一些常用图形工具如:平移、旋转、缩放、视点控制等。另外,Tools菜单包含了两个数据分析工具:Basicfitting工具和DataStatistics工具,用于对图像中的数据进行基本的分析和拟合等。数学建模与MATLAB29图形注释方法注释图形可以通过四种方式进行:使用图形注释工具栏图像调色板中的工具insert菜单中对象插入注释命令。数学建模与MATLAB30函数功能annotation创建注释对象xlable,ylable,zlable给相应坐标轴添加标注title为图形添加标题legend为图形添加图例colorbar为图形添加颜色条text(x,y,图形说明)为图形添加文本注释文字注释格式text(x,y,‘string’)%在图形中指定的位置(x,y)上显示字符串string常用Tex字符集数学建模与MATLAB31命令字符命令字符命令字符命令字符\alphaα\omegaω\OmegaΩ\etaη\beta

β\psiψ\PsiΨ\rhoρ\gammaγ\GammaΓ\epsilonε\tauτ\deltaδ\DeltaΔ\chiχ\muμ\thetaθ\ThetaΘ\PiΠ\piπ\sigmaσ\SigmaΣ\zetaζ\xiξ\phiφ\PhiΦ\oslash\nuυ\lambdaλ\LambdaΛ\copyright@\infty∞\forall"\leq≤\pm±\oplusÅ数学建模与MATLAB32\exists$\geq≥\times×\otimesÄ\in∈\neq≠\div÷\wedge^\partial∂\equiv≡\mid|\surd√\int∫\rangle>\sim~\0\rfloor∮\langle<\ldots…\o○\cap∩\cup∪\supsetÉ\subsetÌ\leftrightarrow\perp⊥\supseteqÊ\subseteqÍ\leftarrow←\uparrow↑\rightarrow→\downarrow↓字符串也可以使用各种字体,如黑体(\bf)、斜体(\it)、倾斜体(\sl)、正体字符(\rm),或使用\fontname{fontname}选定使用的字体,\fontsize{fontsize}选定使用的字体尺寸。例如,要显示,只需键入:text(3,5,'sin({\it\omegat}+{\it\theta})')在某个字符后面加上一个上标或下标,可以分别采用“^”、“_”来实现,若要把多个字符作为指数或下标,则应该使用大括号。图形控制命令1.坐标控制格式

axis([xmin,xmax,ymin,ymax])%调整图轴中x、y轴的范围axisauto%使用默认设置axissquare%产生正方形坐标系axisequal%纵、横坐标轴采用等长刻度axisequaltight%将图形以紧缩的方式显示axisfill%将坐标轴的取值范围分别设置为绘图所用数据在相应方向上的最大值和最小值axison/off%显示/取消坐标轴数学建模与MATLAB332.网格线控制格式

gridon%给当前的坐标轴增加格线

gridminor%使用更细化的网格

gridoff%从当前的坐标轴中去掉格线

grid%转换格线的显示与否的状态3.边框线控制格式boxon%给图形加边框线

boxoff%给图形不加边框线4.清除图形窗口格式clf%清除所有当前图形窗口数学建模与MATLAB34特殊图形绘制1、极坐标图格式polar(theta,rho,LineSpec)%用极角theta和极径rho画出极坐标图形。,LineSpec为线性等参数。绘制的极坐标图。>>t=0:0.01:2*pi;>>pola

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论