《计算机在生命科学中的应用》实验指导书1.docx

上传人:b****2 文档编号:17633111 上传时间:2023-07-27 格式:DOCX 页数:43 大小:264.80KB
下载 相关 举报
《计算机在生命科学中的应用》实验指导书1.docx_第1页
第1页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第2页
第2页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第3页
第3页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第4页
第4页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第5页
第5页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第6页
第6页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第7页
第7页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第8页
第8页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第9页
第9页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第10页
第10页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第11页
第11页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第12页
第12页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第13页
第13页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第14页
第14页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第15页
第15页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第16页
第16页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第17页
第17页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第18页
第18页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第19页
第19页 / 共43页
《计算机在生命科学中的应用》实验指导书1.docx_第20页
第20页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《计算机在生命科学中的应用》实验指导书1.docx

《《计算机在生命科学中的应用》实验指导书1.docx》由会员分享,可在线阅读,更多相关《《计算机在生命科学中的应用》实验指导书1.docx(43页珍藏版)》请在冰点文库上搜索。

《计算机在生命科学中的应用》实验指导书1.docx

《计算机在生命科学中的应用》实验指导书1

实验一:

数据采集

(一)基本功能

双击MATLAB图标,打开MATLABCommandWindow,它是用户输入命令的地方,MATLAB将计算结果也显示在此。

共有File,Edit,view,web,Windows,Help五个主要功能。

1简易数学

>>1+2+3

ans=

6

>>1*10+2*20+3*30

ans=

140

>>x=1+2+3

x=

6

如果在上述的例子结尾加上;,则计算结果不会显示在命令窗口中,要得知计算值只须键入该变量名即可。

>>x=1+2+3;

>>x

x=

6

MATLAB提供基本的算术运算有:

加(+)、减(-)、乘(*)、除(/)、幂次方(^),例如:

5+3,5-3,5*3,5/3,5^3

要计算面积Area=

半径r=2,则可键入

>>r=2;

>>area=pi*r^2;

>>area

12.5664

我们也可以将上述命令打在同一行,以,或是;分开,例如

>>r=2,area=pi*r^2

>>r=2;area=pi*r^2;

请注意上述二式的差异,前者有计算值显示,而后者无。

如果一个命令过长可以在结尾加上...,例如

>>r=2;

>>area=pi...

*r^2

另外一个符号注解是由%起头,也就是说在%之后的任何文字都被视为程序的注解。

例如

>>r=2;%键入半径

>>area=pi*r^2;%计算面积

MATLAB可以将计算结果以不同的精确度的数字格式显示,在命令窗口键入以下显示格式的命令,以π值为例

命令

数字值

说明

formatshort

3.1416

预设的4位有效小数位数

formatlong

3.14159265358979

15位有效小数位数

formatshorte

3.1416e+000

4位有效小数位数加上指数表格式

观察下列命令后pi结果的变化:

>>formatlong

>>pi

>>formatshort

>>pi

2变量

MATLAB对使用变量名称的规定:

1.变量名称的英文大小写是有区别的(apple,Apple,AppLe,三个变量不同)。

2.变量的长度上限为19个字符。

3.变量名的第一个字符必须是英文字符,随后可以英文字符、数字或下划线。

3其它功能

MATLAB利用了↑↓二个光标移动键将所执行过的命令重复使用。

按下↑前一次命令重新出现,之后再按Enter键,即再执行前一次的命令。

键入who可以查看所有定义过的变量名称。

而键入clear则是清除所有定义过的变量名称;如果只是要去除x及y二个变量,则可以键入clearxy。

Ctrl-C(即同时按Ctrl及C二个键)可以用来中止执行中的MATLAB的工作。

4帮助

利用help命令,如果你要找题材(topic),直接键入help

利用命令窗口的功能菜单中的Help,从中选取TableofContents(目录)或是Index(索引)。

例如

>>helpsqrt

SQRTSquareroot.

SQRT(X)isthesquarerootoftheelementsofX.Complex

resultsareproducedifXisnotpositive.

(二)数组与矩阵输入

1数组与矩阵的定义

MATLAB的运算是以数组及矩阵方式,而这二者在MATLAB的基本运算性质不同,数组强调元素对元素的运算,而矩阵则采用线性代数的运算方式。

定义一变量为数组或是矩阵时,须用中括号[]将元素置于其中。

数组为一维元素所构成,而矩阵为多维元素所组成,例如

>>x=[123]%一维1x3数组

>>x=[123;456]%二维2x3矩阵

假设要计算y=sin(x),0至π而x=0,0.2π,0.4π,...,π,即可用数组方式运算,例如

>>x=[00.2*pi0.4*pi0.6*pi0.8*pipi]%注意数组内也可作运算

x=

00.62831.25661.88502.51333.1416

>>y=sin(x)

y=

00.58780.95110.95110.58780.0000

要找出数组的某个元素或数个元素:

>>x(3)%第三个x的元素

ans=

1.2566

>>y(5)%第五个y的元素

ans=

0.5878

>>x(1:

5)%列出第一到第五个x的元素

ans=

00.62831.25661.88502.5133

>>y(3:

-1:

1)%列出第三到第一个y的元素,3为起始值,1为终止值,-1为增量

ans=

0.95110.58780

如果要建立的数组的元素多达数百个,则须采用以下的方式。

>>x=(0:

0.2:

1)%以:

区隔起始值=0、增量值=0.2、终止值=1

>>x=linspace(0,1,51)%利用linspace,以区隔起始值=0终止值=1之间的元素数目=51

>>x=(0:

0.01:

1)*pi%注意数组外也可作运算

>>a=1:

5,b=1:

2:

9%这二种方式更直接

a=

12345

b=

13579

>>c=[ba]%可利用先前建立的数组a及数组b,组成新数组

c=

1357912345

2数组运算符

以下将数组的运算符号及其意义列出,除了加减符号外其余的数组运算符号均须多加.符号。

数组运算功能

+加

-减

.*乘

./左除

.^次方

.'转置

>>a=1:

5;a-2%从数组a减2

ans=

-10123

>>2*a-1%以2乘数组a再减1

ans=

13579

>>b=1:

2:

9;a+b%数组a加数组b

ans=

2581114

>>a.*b%数组a及b中的元素与元素相乘

ans=

16152845

>>a.^2%数组中的各个元素作二次方

ans=

1491625

3特殊矩阵

zeros函数是形成元素皆为0的矩阵;ones函数是形成元素皆为1的矩阵;eye则是产生一个单位矩阵,如zeros(m)可以产生一个m×m的方阵,而zeros(m,n)产生的是m×n的矩阵。

>>B=zeros(2,3)

B=

000

000

>>C=[12;34;56];

>>size(C)%使用size命令得到C矩阵的大小

ans=

32

>>A=ones

(2),B=ones(2,3)%1的矩阵

A=

11

11

B=

111

111

>>A=eye

(2),B=eye(2,3)%单位矩阵

A=

10

01

B=

100

010

(四)编写M-file

MATLAB提供了M-file的方式,可让使用者自行将命令及算式写成程序然后储存,其扩展各为m,如test.m,其中的test就是文件名称。

在命令窗口中选择File再选择New,当程序写完后要存档时,必须以.m名称储存。

以下的tutex1.m是一个简易绘图程序做为示范使用M-file

x=linspace(0,2*pi,20);y=sin(x);

plot(x,y,'r+')

xlabel('x-value')

ylabel('y-value')

title('2Dplot')

写好上述程序后即可在命令窗口下键入tutex1,即可执行已建立的tutex1.m程序。

(五)设置工作目录

当在执行M-file时,我们最好是将自己的M-file储存在自己的工作目录下,而不要放在MATLAB内建的目录下,要在自己的工作目录执行程序可分为二个步骤:

(1)建立搜寻路径,

(2)切换目录。

建立搜寻路径

MATLAB将许多内建函数分门别类放在不同的子目录下,因此它在工作时须依次的搜寻这些目录,这个过程称为「搜寻路径」。

MATLAB的命令path可以让我们将自己的工作目录加在原来MATLAB的搜寻路径之前或之后,如

先在D盘中创建文件夹“stu01”,然后输入下列命令:

>>path(path,'d:

\stu01')%将自己的目录\stu01加在MATLAB的搜寻路径之后

>>path

>>path('d:

\stu01',path)%将自己的目录\stu01加在MATLAB的搜寻路径之前

>>path

实验二:

绘图

(一)二维绘图

plot是用来绘函数x对函数y的二维图,例如要绘出y=sin(x),0至2π。

plot可以在一个图上绘数条曲线,且以不同的符号及颜色来表示曲线,如要在x、y轴及图上加注说明,则可利用命令xlabel,ylabel,title,使用命令grid加上网格线。

______________________________________________

字母颜色标点线型

y黄色·点线

m粉红○圈线

c亮蓝××线

r大红++字线

g绿色-实线

b蓝色星形线

w白色:

虚线

k黑色-.(--)点划线

___________________________________________________

>>v1=linspace(0,2*pi,20);v2=sin(v1);%建立v1及v2数组

>>plot(v1,v2)%利用plot,输入的变量为x轴,y轴

>>v3=cos(v1);%建立v3数组

>>plot(v1,v2,v1,v3)%绘二条曲线

>>plot(v1,v2,v1,v2,'+')%一样绘二条曲线,不过第二条曲线以符号+标示

>>plot(v1,v2,v1,v2.*v3,'--')%绘二条曲线,一条代表v1-v2函数关系,一条

%代表v1-(v2.*v3)函数关系

>>xlabel('x-axis')%加上x轴的说明,在二个单引号'之间键入文字的说明

>>ylabel('y-axis')%加上y轴的说明

>>title('2Dplot')%加上图的说明

gtext则是依据鼠标或上下左右游标键来放置文字说明,其语法为gtext('string')。

>>x=linspace(0,2*pi,30);y=sin(x);z=cos(x);

>>plot(x,y,x,z)%绘二条曲线y=sin(x),z=cos(x)

>>text(2.5,0.7,'sin(x)')%(2.5,0.7)是依据绘图大小的座标值

>>gtext('cos(x)')%将鼠标移至适当位置再按鼠标键

一般的x-y图在横轴及纵轴皆是以线性尺度来绘图,如果要绘图的数据的x或y值变化范围太大,就须要改用对数(log)尺度来绘图才可得到合理的图。

MATLAB提供三种对数尺度的绘图命令:

semilogx,semilogy,loglog,它们的作用分别是x轴以对数尺度绘图,y轴以对数尺度绘图,x和y轴以对数尺度绘图。

>>y=0:

0.1:

10;x=10.^y

>>plot(x,y)%

>>semilogx(x,y)%改以对数尺度绘图

>>x=[0257101215172021];

>>y=[0.10.20.50.60.911.21.261.221.2];

>>plot(x,y)%先以线性尺度绘图,再分别以三种对数尺度绘

>>semilogx(x,y)%图,注意各个图像会改变

>>semilogy(x,y)

>>loglog(x,y)

(二)绘图选项

1MATLAB有许多的绘图选项,如将二条曲线划在同一个图中。

>>x=linspace(0,2*pi,30);

>>y=sin(x);z=cos(x);

>>plot(x,y,x,z)%将y=sin(x)及z=cos(x)二函数分布绘图

>>plot(x,y,'g:

',x,z,'r--')%加上不同的颜色及符号来区别二条曲线

title——给图形加标题

xlable——给x轴加标注

ylable——给y轴加标注

text——在图形指定位置加标注

gtext——将标注加到图形任意位置

gridon(off)——打开、关闭坐标网格线

legend——添加图例

axis——控制坐标轴的刻度

2横轴和纵轴的控制

要控制绘图的横轴及纵轴比例,可以用axis配合下列的相关的选项:

axis([xminxmaxyminymax])

以xminxmax设定横轴的下限及上限,以yminymax设定纵轴的下限及上限

axisauto

横轴及纵轴依照数据大小的上下限来订定,横轴及纵轴比例是4:

3

axissquare

横轴及纵轴比例是1:

1

axisequal

将横轴纵轴的尺度比例设成相同值

axisnormal

以预设值画纵轴及横轴

axisoff

将纵轴及横轴取消

axison

恢复纵轴及横轴

上述的各个命令的语法也可以将关键字放在括弧内的单引号之间,如axis('')。

>>x=linspace(0,2*pi,30);y=sin(x);z=cos(x);

>>plot(x,y,x,z)

>>axisoff

>>axison

>>axis('square','equal')

>>axis('xy','normal')

3子图

要将数个相关的图画在同一页时,可以用subplot这个命令。

其语法为subplot(m,n,p),其中m,n代表绘图成mxn个子图,m表示在y方向有m个图,n表示在x方向有n个图,p是代表第几个子图。

下例是以subplot分别画出线性及对数尺度的四个子图:

>>x=[0257101215172021];

>>y=[0.10.20.50.60.911.21.261.221.2];

>>subplot(2,2,1),plot(x,y)%画左上角的图

>>subplot(2,2,2),semilogx(x,y)%画右上角的图

>>subplot(2,2,3),semilogy(x,y)%画左下角的图

>>subplot(2,2,4),loglog(x,y)%画右下角的图

4图形放大及缩小

zoom命令可以将图形放大或缩小,若要将图形放大时用zoomon,zoomout,当不再要放大或缩小图形时用zoomoff。

>>M=peaks(25);%peaks是MATLAB内建的一个像山峰的特别函数,25是这个

>>plot(M)%函数矩阵的大小,如果数值愈大则画出的山峰图愈平滑

>>zoomon%开始放大图形,每按一次鼠标左键图形就放大一次

>>zoomout%开始缩小图形,每按一次鼠标右键图形就缩小一次

>>zoomoff%停止图形放大或缩小功能

5函数分布的快速绘图

fplot的命令可以用来自动的画一个已定义的函数分布图,而无须产生绘图所须要的一组数据做为变量。

其语法为fplot('fun',[xminxmaxyminymax]),其中fun为一已定义的函数名称,例如sin,cos等等;而xmin,xmax,ymin,ymax则是设定绘图横轴及纵轴的下限及上限。

以下的例子是将一函数f(x)=sin(x)/x在-20 x 20,-0.4 y 1.2之间画出:

>>fplot('sin(x)./x',[-2020-0.41.2])

>>title('Fplotoff(x)=sin(x)/x')

>>xlabel('x'),ylabel('f(x)')

(三)三维绘图

1三维的曲线绘图

plot3可以用来画一个三维的曲线,它的格式类似plot,不过多了z方向的数据。

其与法可以是plot3(X,Y,Z)或是plot3(X,Y,Z,'linetype'),其中的linetype是设定画线的符号和颜色。

下面的例子说明一个三维的曲线图:

>>t=0:

pi/50:

10*pi;

>>plot3(sin(t),cos(t),t)

>>title('Helix'),xlabel('sin(t)',ylabel('cos(t)'),zlabel('t')

2曲面及等值线绘图

如果要画一个三维的曲面,MATLAB是以meshgrid配合与mesh或surf命令来绘图。

先要以meshgrid产生在x-y平面的二维的网格数据,再以一组z轴的数据对应到这个二维的网格,即可画出三维的曲面。

>>x=-7.5:

0.5:

7.5;y=x;%先产生x及y二个数组

>>[X,Y]=meshgrid(x,y);%再以meshgrid形成二维的网格数据

>>R=sqrt(X.^2+Y.^2)+eps;%加上eps可避免当R在分母时趋近零时会无法定义

>>Z=sin(R)./R;%产生z轴的数据

>>mesh(X,Y,Z)%将z轴的变化值以网格方式画出

>>surf(X,Y,Z)%将z轴的变化值以曲面方式画出

实验三:

函数

(一)多项式函数

1多项式的表示方法

在生命科学实验分析中,多项式常被用来模拟一个现象的函数。

令p(x)代表一个多项式:

MATLAB以一最简便方式代表上述的多项式p=[14-7-10],其中的数值是多项式的各阶项(从高到低)的各个系数,其实p也是一个数组,用以代表这个多项式。

2多项式的加减乘除运算

有了多项式的表示式后,即可来计算其函数值。

可以用函数polyval直接做运算,语法为polyval(p,x),其中p代表多项式各阶系数的数组。

因此:

>>x=linspace(-1,3);

>>p=[147-10];

>>v=polyval(p,x);

函数conv做乘法运算以及函数deconv做除法运算。

当二多项式相乘,其语法为conv(a,b),其中a,b代表二个多项式的数组。

而二多项式相除有deconv函数,其语法稍有不同[q,r]=deconv(a,b),其中q,r分别代表整除多项式及余数多项式。

>>a=[1234];b=[14916];

>>c=a+b

c=

261220

>>d=a-b

d=

0-2-6-12

>>e=conv(a,b)

e=

162050758464

>>g=e+[000c]

g=

162052819684

>>[f,r]=deconv(e,b)

f=

1234

r=

0000000%因为是整除所以余数多项式的各系数皆为零

>>[h,r]=deconv(g,a)

f=

14918

r=

00002612%余数多项式为2*x^2+6*x+12

(二)数据分析函数

1极值、平均、总和、连乘及排序

最大值max,最小值min,平均值mean,一组数据的中位数median,总和值sum,连乘值prod,累积总和值cumsum,累积连乘值cumprod,排序函数sort。

max(x)找出x数组的最大值

max(x,y)找出x及y数组的最大值,会有二个极值分属x及y数组

[y,i]=max(x)找出x数组的最大值以y显示,其在x数组的位置以i显示

min(x)找出x数组的最小值

min(x,y)找出x及y数组的最小值,会有二个极值分属x及y数组

[y,i]=min(x)找出x数组的最小值以y显示,其在x数组的位置以i显示

mean(x)找出x数组的平均值

median(x)找出x数组的中位数

sum(x)计算x数组的总和值

prod(x)计算x数组的连乘值

cumsum(x)计算x数组的累积总和值

cumprod(x)计算x数组的累积连乘值

>>rains=1000*rand(2,6)%rains为一个2x6的数组

rains=

126.8148.5173.0148.4194.7208.9

328.8300.7268.3210.5278.4321.5

>>avg_rain=mean(rains)%将rains数组中的每一行的平均值列出

avg_rain=

227.8000224.6000220.6500179.4500236.5500265.2000

>>avg_rain=mean(avg_rain)%将上述数组中的平均值列出

avg_rain=

225.7083

>>max_rain=max(rains)%将rains数组中的每一行的最大值列出

max_rain=

328.8000300.7000268.3000210.5000278.4000321.5000

>>[max_rain,x]=max(rains)%将rains数组中的每一行的最大值及其位置列出

max_rain=

328.8000300.7000268.3000210.5000278.4000321.5000

x=

222222

>>min_rain=min(rains)%将rains数组中的每一行的最小值列出

min_rain=

126.8000148.5000173.0000148.4000194.7000208.9000

>>s_sort=sort(rains)%将rains数组的值由小到大做排序

s_sort=

126.8000148.5000173.0000148.4000194.7000208.9000

328.800030

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2