matlab 上机练习1-2 (2)

合集下载

MATLAB实验答案(桂电)

MATLAB实验答案(桂电)

实验一 MATLAB入门(1)1.实验目的:(1)了解MATLAB的体系结构与特点,熟悉其集成开发环境。

(2)熟悉MATLAB界面窗口的功能和使用方法。

(3)熟悉MATLAB的帮助系统及使用方法。

(4)了解MATLAB的的数据类型、基本形式和数组的产生方法。

(5)掌握MATLAB基本的数学运算操作。

2.实验原理(1)MATLAB简介MATLAB是美国MathWorks公司开发的高性能的科学与工程计算软件。

它在数值计算、自动控制、信号处理、神经网络、优化计算、小波分析、图像处理等领域有着广泛的用途。

近年来, MATLAB在国内高等院校、科研院所的应用逐渐普及,成为广大科研、工程技术人员必备的工具之一。

MATLAB具有矩阵和数组运算方便、编程效率极高、易学易用、可扩充性强和移植性好等优点,俗称为“草稿纸式的科学计算语言”。

它把工程技术人员从繁琐的程序代码编写工作中解放出来,可以快速地验证自己的模型和算法。

经过几十年的扩充和完善,MATLAB已经发展成为集科学计算、可视化和编程于一体的高性能的科学计算语言和软件开发环境,整套软件由MATLAB开发环境、MATLAB语言、MATLAB数学函数库、MATLAB图形处理系统和MATLAB应用程序接口(API)等五大部分组成。

MATLAB的主要特点包括强大的计算能力(尤其是矩阵计算能力)、方便的绘图功能及仿真能力、极高的编程效率。

另外,MATLAB还附带了大量的专用工具箱,用于解决各种特定领域的问题。

通过学习软件的基本操作及其编程方法,体会和逐步掌握它在矩阵运算、信号处理等方面的功能及其具体应用。

通过本课程实验的学习,要求学生初步掌握MATLAB的使用方法,初步掌握M文件的编写和运行方法,初步将MATLAB运用于数字信号处理中。

循序渐进地培养学生运用所学知识分析和解决问题的能力。

(2)MATLAB的工作界面(Desktop)与操作MATLAB 安装成功后,第一次启动时,主界面如下图(不同版本可能有差异)所示:其中① 是命令窗口(Command Window ),是MATLAB 的主窗口,默认位于MATLAB界面的右侧,用于输入命令、运行命令并显示运行结果。

Matlab上机练习题及答案

Matlab上机练习题及答案

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 的个数,也由键盘输入。

MATLAB练习作业(已做)2012

MATLAB练习作业(已做)2012

说明:如在测试时请将程序中的中文字符改为西文(部分程序为手写,并未经matlab验证)2012年春《MATLAB基础》第一次上机练习与作业练习1:脚本文件建立一个文件名为helloWorld的脚本文件,运行该文件时显示出如下文字:Hello World!I am going to learn MATLAB•提示: 用disp显示字符串,将要显示的字符号串用单引号引起来。

如'This is a string'练习2:变量获取并保存当前的日期与时间●用函数clock生成一个变量,变量名为start●用size查看start的维数,它是一个行向量还是一个列向量?●start包含什么内容?用help clock查看●用函数datestr将向量start转换成字符串,得到新的变量,名为startString●将start与startString保存为mat文件,文件名为startTime●在练习1建立的脚本文件helloWorld.m文件中,用load函数导入变量startTime, 并显示如下文字:I started learning MATLAB on * start date and time*练习3:标量你将要以指数增长的速度来学习MATLAB, 将如下内容添加到helloWorld.m文件中●假设你的学习时间是一个常量,为1.5 days,将此时间用秒表示,赋给变量tau●假设课程持续时间为5 days. 将这个时间单位转换为秒,保存在变量endofClass中?●将学到的知识描述为t的函数,函数方程为:●用函数datestr将向量start转换成字符串,得到新的变量startString●在课程结束时间endofClass,你将学到多少知识?用变量knowledgeAtEnd表示(指数函数exp)●用变量knowledgeAtEnd,显示如下语句:At the end of the MATLAB class, I will know X% of MATLAB提示: 将数转换成字符串,用num2str练习4:向量运算计算从课程开始到现在经过的时间,用秒表示.●在helloWorld.m中,建立一系列变量,变量名分别为:secPerMin, secPerHour,secPerDay,secPerMonth(假设每个月30.5天),以及secPerYear.●将变量按次序secPerYear,secPerMonth, secPerDay,secPerHour, secPerMin,1 排列,构成一个行向量,命名为secConversion?●用时钟函数clock生成一个向量currentTime●计算经过的时间elapsedTime,用currentTime与start相减.●通过向量secondConversion与elapsedTime的数量积运算计算时间t,●显示当前的时间水平,用变量currentKnowledge表示. ()●显示如下语句:At this time, I know X% of MATLAB练习5:向量函数计算你的学习轨迹.●在helloWorld.m中,建立线性时间向量tVec,包含从0到endOfClass的10000个样本点.●计算在每个时间点处对应的知识值,仍然用函数练习6:向量寻址什么时候你将学到50%的MATLAB知识?.●在向量knowledgeVec中,查找最接近0.5的元素所在的位置.●用halfTime保存对应的时间●显示如下语句:I will know half of MATLAB after X days要将halfTime用secPerDay转换成天数练习7:绘图画出学习的轨迹图?.●在helloWorld.m中,打开一个新的图形窗口(figure)●用向量tVec与knowledgeVec画出知识轨迹,画图时,将时间单位转换为天●用图形窗口中的zoom in 查看halfTime,与前面计算结果相比较.clear,clc;disp('Hello World!');disp('I am going to learn MA TLAB');start=clock;[startx,starty]=size(start);if startx>startydisp('一个行向量')elsedisp('一个列向量');endstartString=datestr(start);save startTime.mat start startString;waittime=input('为使程序达到较好的执行效果,请输入程序需要暂停时间(秒):'); state = 0;h = waitbar(0, '请等待...', 'Name', '进度条', 'CreateCancelBtn', ...'state = 1; delete(h); clear h');h1 = findall(h, 'style', 'pushbutton');set(h1, 'string', '取消', 'fontsize', 10)for i = 1 : 100waitbar(i/100, h, ['已暂停时间百分比' num2str(i) '%']);pause(waittime/100);if statebreakendendif exist('h') == 1delete(h);endload startTimedisp('I started learning MATLAB on * start date and time*');tau=1.5*24*3600;endofClass=5*24*3600;knowledgeAtEnd=1-exp(-tau/endofClass);disp(['At the end of the MATLAB class, I will know ',num2str(knowledgeAtEnd*100),' % of MATLAB']);secPerMin=60;secPerHour=3600;secPerDay=24*secPerHour;secPerMonth=30.5*secPerDay;secPerYear=12*secPerMonth;secondConversion=[secPerYear,secPerMonth, secPerDay,secPerHour, secPerMin,1]; currentTime=clock;elapsedTime=currentTime-start;elapsedTime=elapsedTime.*secondConversion;currentknowledge=1-exp(-elapsedTime/endofClass);disp(['At this time, I know ',num2str(sum(currentknowledge)*100),'% of MATLAB']);tVec=linspace(0,endofClass,1000);knowledgeVec=1-exp(-tVec./endofClass);halfTimeindex=find(abs(knowledgeVec-0.5)<1e-3);halfTime=sum(tVec(halfTimeindex))/length(halfTimeindex)/secPerDay;disp(['I will know half of MATLAB after ',num2str(halfTime),' days']);plot(tVec/secPerDay,knowledgeVec);xlabel('Day');2012年春《MATLAB基础》第二次上机练习与作业练习1:函数文件建立一个文件名为plotSin的函数文件,要求:●函数声明为:functon plotSin(f1)●该函数用于画出频率为的正弦波在区间上的图像.●每个周期含有16个数据点function plotsin(f1)xnum=16*f1;x=linspace(0,2*pi,xnum);plot(x,sin(f1*x));练习2:条件语句●修改函数plotSin(f1)使之有两个输入变量,形式为plotSin(f1,f2)●如果输入的变量个数为1,执行以前写的绘图命令.否则显示文字'Two inputs were given'●提示:输入变量的数目用内置变量名:narginfunction plotsin(f1,f2)if nargin==1xnum=16*f1;x=linspace(0,2*pi,xnum);plot(x,sin(f1*x));elseerror('Two inputs were given');end练习3:绘图命令●修改PlotSin中的绘图命令,将数据点类型改为正方形,线形改为红色虚线,线宽为2.设置数据点填充色为黑色(属性名为:LineWidth, MarkerFaceColor)●如果有2个输入变量,新开一个绘图窗口,上下排列,并且激活上面图形窗口plotSin(6)plotSin(2,3)function plotsin(f1,f2)if nargin==1h1=figure(1);xnum=16*f1;x=linspace(0,2*pi,xnum);plot(x,sin(f1*x),'--rs','MarkerFaceColor','k','LineWidth',2);elseh2=figure(2);h1=figure(1);xnum=16*f1;x=linspace(0,2*pi,xnum);plot(x,sin(f1*x),'--rs','MarkerFaceColor','k','LineWidth',2);end练习4:半对数图在过去5年里,某课程学生人数分别为:15,25,55,115,144.班级规模似乎呈指数增长趋势,用半对数图来验证.要求绘制的图形效果如下●相关函数:semilogy,xlabel,ylabel,axis,title●数据点为玫红,正方形,没有折线相连.点的大小为10,点边线的宽度为4.x=1:5;y=[15,25,55,115,144];h=semilogy(x,y,' sr','MarkerSize',10,'Linewidth',4);xlabel('x');ylabel('y');title('My Semilogy plot');axis([0,6,10,300])set(h,'Color',[1 0.3 0.6]);练习5:条形图生成一个有5个随机数构成的向量,画出一幅条形图,条形块为红色.效果如下:bar(1:5,rand(5,1),'r')练习6:圆的绘制●建立一个画圆的函数文件.function [x y]=getCircle(center,r)运行程序得到的是圆上点的坐标●调用程序画出同心圆及五环图,效果如下col=['b','k','r','y','g'];subplot 121r1=1:5;center1=[0,0];for i=1:5[x,y]=getCircle(center1,r1(i));plot(x,y,col(i),'Linewidth',2);hold onendaxis equalaxis([-5 5 -5 5])subplot 122r2=0.5;center2=[-1 0;0 0;1 0;-0.5 -0.5;0.5 -0.5];for i=1:5[x,y]=getCircle(center2(i,:),r2);plot(x,y,col(i),'Linewidth',2);hold onendaxis equalaxis([-1.5 1.5 -1.5 1])-505-101-1.5-1-0.50.512012年春《MATLAB 基础》第三次上机练习与作业练习1:演示文件命令窗口中,键入:demo,出现MATLAB的demo演示窗口,然后选择:MATLAB下的Matrices,依次选取其中的Basic Matrix operation 、Matrix manipulation两个示例,进行MATLAB矩阵运算的学习。

matlab上机练习(附答案)

matlab上机练习(附答案)

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上机习题详解试题答案

百度文库 - 让每个人平等地提升自我P 第一次实验答案1. 设要求以0.01秒为间隔,求出y 的151个点,并求出其导数的值和曲线。

clc clearx=0:0.01:1.5;y=sqrt(3)/2*exp(-4*x).*sin(4*sqrt(3)*x+pi/3)y1=diff(y) subplot(2,1,1) plot(x,y)subplot(2,1,2) plot(x(1:150),y1)2绘制极坐标系下曲线(a,b,n 自定数据)clc clear a=10; b=pi/2; n=5;theta=0:pi/100:2*pi; rho=a*cos(b+n*theta); polar(theta,rho)3. 列出求下列空间曲面交线的程序clc clearx=[-5:0.5:5];[X,Y]=meshgrid(x); z1=X.^2-2*Y.^2;z2=X.*2-Y.*3; xlabel('x') ylabel('y') zlabel('z') surf(X,Y,z1) hold onsurf(X,Y,z2)k=find(abs(z1-z2)<0.5); x1=X(k) y1=Y(k)z3=x1.^2-2*y1.^2 hold onplot3(x1,y1,z3,'*')4、设 ⎥⎦⎤⎢⎣⎡++=)1(sin 35.0cos 2x x x y 把x=0~2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线,要求有图形标注。

clc clearx=-2*pi:0.1: 2*pi;y=cos(x).*(0.5+sin(x)*3./(1+x.^2)); plot(x,y,'b*-'); title('绘图'); xlabel('x 坐标'); ylabel('y 坐标'); legend('原函数')gtext('y=cos(x)(0.5+3*sin(x)/(1+x^2))')5、求下列联立方程的解 81025695832475412743-=+-+-=-+-=++-=--+w z y x w z x w z y x w z y xclc cleara=[3,4,-7,-12;5,-7,4,2;1,0,8,-5;-6,5,-2,10];b=[4,-3,9,-8]; c=b/a; x=c(1,1) y=c(1,2) z=c(1,3) w=c(1,4)6. 假设一曲线数据点为x = 0:2:4*pi;y = sin(x).*exp(-x/5);试将x 的间距调成 0.1,采用不同插值方法进行插值,并通过子图的形式将不同插值结果和原始数据点绘制在同一图形窗口。

matlab上机练习及答案

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 编程2、 体会数学上恒等,算法上不一定恒等二、实验内容1. Using the Taylor polynomial of degree nine and three-digit rounding arithmetic to find an approximationto 5-e by each of the following methods.(A) ∑=--≈905!)5(n n n e , (B) ∑=-≈=9055!5/11n nn e e An approximate value of 5-e correct to three digits is 31074.6-⨯. Which formula, (A) or (B), gives the most accuracy, and why?1) 算法基础利用x e 的Taylor 公式00!!n nk x n n x x e n n ∞===≈∑∑,x -∞<<+∞ (1)及001/1/1/!!n nk x x n n x x e e n n ∞-====≈∑∑,x -∞<<+∞, (2)其中k 是根据精度要求给定的一个参数。

在本题中将k 取为9, x 取为-5或5即可由公式(1)或(2)得到5-e 的近似计算方法(A )或(B )。

2) 程序下述程序用公式(A )及(B )分别在Matlab 许可精度下及限定在字长为3的算术运算情况下给出5-e的近似计算结果,其中results_1, results_2为用方法(A )在上述两种情况下的计算结果,err_1, err_2为相应的绝对误差;类似的,results_3, results_4为用方法(B )在上述两种情况下的计算结果,err_3, err_4为相应的绝对误差;具体程序如下:% Numerical Experiment 1.1 % by Xu Minghua, May 17, 2008 clc; %Initialize the data x=-5; k=9; m=3; %three-digit rounding arithmetic %------------------------------------ % Compute exp(x) by using Method (A) % with the computer precision results_1=1; power_x=1; for i=1:k factor_x=x/i; power_x=power_x*factor_x; results_1=results_1+power_x; end results_1 err_1=abs(exp(x)-results_1)%------------------------------------% Compute exp(x) by using Method (A) % with the 3-digits precisionresults_2=1;power_x=1;for i=1:kfactor_x=digit(x/i,m);power_x=digit(power_x*factor_x,m); results_2=digit(results_2+power_x,m); endresults_2err_2=abs(exp(x)-results_2)%------------------------------------% Compute exp(x) by using Method (B) % with the computer precisiont=-x;results_3=1;power_x=1;for i=1:kfactor_x=t/i;power_x=power_x*factor_x;results_3=results_3+power_x; endresults_3=1/results_3err_3=abs(exp(x)-results_3)%------------------------------------% Compute exp(x) by using Method (B) % with the 3-digits precisiont=-x; results_4=1;power_x=1;for i=1:kfactor_x=digit(t/i,m);power_x=digit(power_x*factor_x,m);results_4=digit(results_4+power_x,m); endresults_4=digit(1/results_4,m)err_4=abs(exp(x)-results_4)%------------------------------------上述主程序用到一个子程序digit.m, digit(x,m)的作用是将x四舍五入成m位数。

MATLAB上机练习及作业

MATLAB上机练习及作业

MATLAB上机练习及作业第一章1. 熟悉MATLAB环境,练习第一章的命令;2. 练习显示格式(P13)1利用Help命令,搞清楚MATLAB的所有主题,利用help signal和help control 搞清楚这两个工具箱2练习whos,who,disp,clear,which,ver等命令第二章3练习矩阵操作,书上P34~404练习逻辑和关系运算,书上P40~435练习随机数产生,书上P506练习时间和日期函数,P56~577矩阵操作diag,reshape,rot90,fliplr,flipud,tril,triu等8练习MATLAB基本函数P669上交:第二章习题中的No.3, No.6第3章1. 练习产生图3.1~3.5, 3.9~3.12, 3.14, 3.18,3.21,3.22, 3.24~3.312. 第3章习题: (P122) 2, 5--93. 交程序:5;74. 并练习图形旋转、标注、复制等功能5. 交结果:与习题7类似,只是画出你自己上个月的消费饼图第4章1. 上机前好好复习这章内容,练习P137页的两段程序,并将终值扩大到500,体会两者的速度差异。

2. 熟悉MATLAB的调试技术。

3. 第4章习题: (P158)4. 1,3,5,8,95. 交结果:3;5,8(分别求出当I=54,I=105时的结果);9第5章习题(p.222)1, 2, 3, 7, 8, 9, 13, 15, 16, 20交结果: 1, 2, 8, 9, 13, 16第6章P.251 看懂综合设计示例, 设计程序计算每个班的平均成绩, 计算教师的实际学时数。

(交结果)P.269 2, 3第7章1. 在[-1,1]区间上绘制出y=-2x^2+4的曲线, 并在图中标注出最大值点的坐标.2. 任意给定一句英文句子, 请提取其每个单词, 并设计一结构, 其域有Name、No、Length、Value,分别用于存储每个单词的名称、句中序号、单词长度、单词各个字符的ASCII 码。

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

第一次上机:基础准备及入门2.1 指令窗运行入门2.1.1 最简单的计算器使用法【例2.5.1-1】求23)]47(212[÷-⨯+的算术运算结果。

(1)用键盘在MATLAB 指令窗中输入以下内容 >> (12+2*(7-4))/3^2(2)在上述表达式输入完成后,按【Enter 】键,该就指令被执行。

(3)在指令执行后,MATLAB 指令窗中将显示以下结果。

ans = 2【例2.5.1-2】简单矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321A 的输入步骤。

(1)在键盘上输入下列内容A = [1,2,3; 4,5,6; 7,8,9](2)按【Enter 】键,指令被执行。

(3)在指令执行后,MATLAB 指令窗中将显示以下结果:A =1 2 3 4 5 6 7 8 9【例2.5.1-3】矩阵的分行输入A=[1,2,3 4,5,6 7,8,9](以下是显示结果)A =1 2 3 4 5 6 7 8 9【例2.5.1-4】指令的续行输入(以下格式在除Notebook 外的MATLAB 环境中可运行)S = 1 – 1/2 + 1/3 –1/4 + 1/5 – 1/6 ... + 1/7 – 1/8 S =0.63452.1.2数值、变量和表达式2.1.2.1复数和复数矩阵【例2.5.2.5-1】复数ieziziz63212,21,43π=+=+=表达,及计算321zzzz=。

(1)经典教科书的直角坐标表示法z1= 3 + 4iz1 =3.0000 +4.0000i(2)采用运算符构成的直角坐标表示法和极坐标表示法z2 = 1 + 2 * i %运算符构成的直角坐标表示法z3=2*exp(i*pi/6) %运算符构成的极坐标表示法z=z1*z2/z3z2 =1.0000 +2.0000iz3 =1.7321 + 1.0000iz =0.3349 + 5.5801i【例2.5.2.5-2】复数矩阵的生成及运算A=[1,3;2,4]-[5,8;6,9]*iB=[1+5i,2+6i;3+8*i,4+9*i]C=A*BA =1.0000 - 5.0000i 3.0000 - 8.0000i2.0000 - 6.0000i 4.0000 - 9.0000iB =1.0000 + 5.0000i2.0000 + 6.0000i3.0000 + 8.0000i4.0000 + 9.0000iC =1.0e+002 *0.9900 1.1600 - 0.0900i1.1600 + 0.0900i 1.3700【例2.5.2.5-3】求上例复数矩阵C的实部、虚部、模和相角。

C_real=real(C)C_imag=imag(C)C_magnitude=abs(C)C_phase=angle(C)*180/pi %以度为单位计算相角C_real =99 116116 137C_imag =0 -99 0C_magnitude =99.0000 116.3486116.3486 137.0000C_phase =0 -4.43654.4365 02.1.3 计算结果的图形表示【例 2.5.3-1】画出衰减振荡曲线t ey t 3sin 3-=及其它的包络线30t e y -=。

t 的取值范围是]4,0[π。

t=0:pi/50:4*pi; %定义自变量取值数组y0=exp(-t/3); %计算与自变量相应的y0数组 y=exp(-t/3).*sin(3*t); %计算与自变量相应的y 数组 plot(t,y,'-r',t,y0,':b',t,-y0,':b') %用不同颜色、线型绘制曲线 grid【例2.5.3-2】画出2222)sin(yx y x z ++=所表示的三维曲面。

y x ,的取值范围是]8,8[-。

clear;x=-8:0.5:8; %定义自变量x 的一维刻度向量 y=x'; %定义自变量y 的一维刻度向量X=ones(size(y))*x; %计算自变量平面上取值点x 坐标的二维数组 Y=y*ones(size(x));%计算自变量平面上取值点y 坐标的二维数组 R=sqrt(X.^2+Y.^2)+eps; %计算中间变量22y x R+=<5> Z=sin(R)./R; %计算与自变量二维数组相应的函数值RRz sin =<6>mesh(Z);%绘制三维网格图colormap(hot)%指定网格图用hot 色图绘制图 2.5.3-2 三维网线图2.2 控制指令窗的指令、操作和标点2.2.1 指令行的编辑【例2.6.3-1】指令行操作过程示例。

(1)若用户想计算51)3.0sin(21+=πy 的值,那末用户应依次键入以下字符y1=2*sin(0.3*pi)/(1+sqrt(5))(2)按【Enter 】键,该指令便被执行,并给出以下结果y1 =0.5000在以上操作和计算结束后,操作指令和计算结果都记录在MATLAB 工作内存中。

因此,假如用户希望调回前面输入的指令重新运行,或希望对前面输入的指令加以修改后再运行,那末只要反复按动键盘上的箭头键,就可从内存中把以前输入的那指令调回到当前行,以供重新运行或修改后运行。

新的计算结果,只可能被此后运行的指令所使用,而绝不会影响以前生成的(非同名)变量的“内容”。

(3)利用指令回调,进行新的计算。

若又想计算51)3.0cos(22+=πy ,用户当然可以象前一个算例那样,通过键盘把相应字符一个一个“敲入”。

但也可以较方便地用操作键获得该指令,具体办法是:先用 键调回已输入过的指令 y1=2*sin(0.3*pi)/(1+sqrt(5)) ;然后移动光标,把y1改成y2;把 sin 改成 cos 便可。

即得y2=2*cos(0.3*pi)/(1+sqrt(5))y2 =0.36332.2.1.1 指令who 和whos【例2.6.5.1-1】用 who 检查MATLAB 内存变量。

在指令窗中运行以下指令,就可看到内存变量。

whoYour variables are:R Y x y1X Z y y2【例2.6.5.1-2】键入 whos ,获得驻留变量的详细情况:全部变量名,变量的数组维数,占用字节数,变量的类别(如双精度),是否复数等。

whosName Size Bytes ClassR 33x33 8712 double arrayX 33x33 8712 double arrayY 33x33 8712 double arrayZ 33x33 8712 double arrayx 1x33 264 double arrayy 33x1 264 double arrayy1 1x1 8 double arrayy2 1x1 8 double arrayGrand total is 4424 elements using 35392 bytes2.2.2变量的文件保存2.2.2.1save 和load 指令【例2.6.6.2-1】数据的存取。

(1)建立用户目录,并使之成为当前目录,保存数据mkdir('c:\','my_dir'); %在C盘上创建目录my_dircd c:\my_dir %使c:\my_dir成为当前目录save saf X Y Z %选择内存中的X,Y,Z变量保存为saf.mat文件dir %显示目录上的文件. .. saf.mat(2)清空内存,从saf.mat 向内存装载变量Zclear %清除内存中的全部变量load saf Z %把saf.mat文件中的Z变量装入内存who %检查内存中有什么变量Your variables are:Z〖说明〗●本例运用了例2.5.3-2和例2.6.3-1中指令运行后产生的变量。

●如果一组数据是经过长时间的复杂计算后获得的,那末为避免再次重复计算,常使用save 加以保存。

此后,每当需要,都可通过 load重新获取这组数据。

这种处理模式常在实际中被采用。

2.3帮助系统2.3.1指令窗中的help 指令2.3.1.1直接使用help获得指令的使用说明【例2.9.2.1-1】假如准确知道所要求助的主题词,或指令名称,那末使用help 是获得在线帮助的最简单有效的途径。

本例演示:关于矩阵对数函数 logm使用说明的在线求助。

help logmLOGM Matrix logarithm.L = LOGM(A) is the matrix logarithm of A, the inverse of EXPM(A).Complex results are produced if A has negative eigenvalues. Awarning message is printed if the computed expm(L) is not closeto A.[L,esterr] = logm(A) does not print any warning message, but returns an estimate of the relative residual, norm(expm(L)-A)/norm(A).If A is real symmetric or complex Hermitian, then so is LOGM(A).Some matrices, like A = [0 1; 0 0], do not have any logarithms, real or complex, and LOGM cannot be expected to produce one.See also EXPM, SQRTM, FUNM.2.3.1.2使用help指令进行分类搜索【例2.9.2.2-1】运行不带任何限定的help,可以得到分类名称明细表。

helpHELP topics:matlab\general - General purpose commands.matlab\ops - Operators and special characters.matlab\lang - Programming language constructs.matlab\elmat - Elementary matrices and matrix manipulation. matlab\elfun - Elementary math functions.matlab\specfun - Specialized math functions....... ......For more help on directory/topic, type "help topic".2.3.1.3采用help topic指令形式获得具体子类的指令明细【例2.9.2.3-1】如果用户想知道有关矩阵操作指令一栏表,那末就运行以下指令。

相关文档
最新文档