当前位置:文档之家› MatLab基本运算

MatLab基本运算

MatLab基本运算
MatLab基本运算

MatLab & 数学建模

第一讲简介及基本运算

一、简介

MATLAB名字由MATrix和 LABoratory 两词的前三个字母组合而成。那是20世纪七十年代后期的事:时任美国新墨西哥大学计算机科学系主任的Cleve Moler教授出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB。

经几年的校际流传,在Little的推动下,由Little、Moler、Steve Bangert合作,于1984年成立了MathWorks公司,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。

MATLAB以商品形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包(如英国的UMIST,瑞典的LUND和SIMNON,德国的KEDDC)纷纷淘汰,而改以MATLAB为平台加以重建。在时间进入20世纪九十年代的时候,MATLAB 已经成为国际控制界公认的标准计算软件。

在欧美大学里,诸如应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教科书都把MATLAB作为内容。这几乎成了九十年代教科书与旧版书籍的区别性标志。在那里,MATLAB是攻读学位的大学生、硕士生、博士生必须掌握的基本工具。

在国际学术界,MATLAB已经被确认为准确、可靠的科学计算标准软件。在许多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到MATLAB的应用。

在设计研究单位和工业部门,MATLAB被认作进行高效研究、开发的首选软件工具。如美国National Instruments公司信号测量、分析软件LabVIEW,Cadence公司信号和通信分析设计软件SPW等,或者直接建筑在MATLAB之上,或者以MATLAB为主要支撑。又如HP公司的VXI硬件,TM公司的DSP,Gage公司的各种硬卡、仪器等都接受MATLAB的支持。

MATLAB具有用法简易、可灵活运用、程式结构强又兼具延展性。以下为其几个特色:

?功能强的数值运算 - 在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函数可使用,函数的标示自然,使得问题和解答像数学式子一般简单明了,让使用者可全力发挥在解题方面,而非浪费在电脑操作上。

?先进的资料视觉化功能 - MATLAB的物件导向图形架构让使用者可执行视觉数据分,并制作高品质的图形,完成科学性或工程性图文并茂的文章。

?高阶但简单的程式环境 - 作为一种直译式的程式语言,MATLAB容许使用者在短时间内写完程式,所花的时间约为用 FORTRAN 或 C 的几分之一,而且不需要编译

(compile)及联结 (link) 即能执行,同时包含了更多及更容易使用的内建功能。

?开放及可延伸的架构 - MATLAB容许使用者接触它大多数的数学原使码,检视运算法,更改现存函数,甚至加入自己的函数使 MATLAB成为使用者所须要的环境。

?丰富的程式工具箱 - MATLAB的程式工具箱融合了套装前软体的优点,与一个灵活的开放但容易操作之环境,这些工具箱提供了使用者在特别应用领域所需之许多函数。现有工具箱有:符号运算(利用Maple V的计算核心执行)、影像处理、统计分析、讯号处理、神经网路、模拟分析、控制系统、即时控制、系统确认、强建控制、弧线分析、最佳化、模糊逻辑、mu分析及合成、化学计量分析。

二、MatLab界面

MATLAB系统命令

在MATLAB 系统中使用帮助方式有三:

1. 是利用help 指令,如果你已知要找的题材 (topic) 为何的话,直接键入help

。所以即使身旁没有使用手册,也可以使用help 指令查询不熟悉的指令或是题材之用法,例如help sqrt

2. 是利用lookfor 指令,它可以从你键入的关键字(key-word)(即使这个关键字并不

是MATLAB 的指令)列出 所有相关的题材,例如lookfor cosine , lookfor sine 。 3. 是利用指令视窗的功能选单中的Help ,从中选取Table of Contents (目录)或是

Index (索引)。

三、基本数学运算

在MATLAB 下进行基本数学运算,只需将运算式直接打在提示号 >> 后面,并按入Enter 键即可。MATLAB 将计算 的结果以ans 显示。 【例】求23)]47(212[÷-?+的算术运算结果。

(1)用键盘在MATLAB 指令窗中输入以下内容 >> (12+2*(7-4))/3^2

(2)在上述表达式输入完成后,按【Enter 】键,该就指令被执行。 (3)在指令执行后,MATLAB 指令窗中将显示以下结果。 ans = 2

我们也可给运算式的结果设定一个变量x : x = (5*2+1.3-0.8)*10^2/25

x =

42

变量x的值可以在下个语句中调用:

y= 2*x+1

y =

85

变量命名规则:

1.变量名的大小写是敏感。

2.变量的第一个字符必须为英文字母,而且不能超过31个字符。

3.变量名可以包含下连字符、数字,但不能为空格符、标点。

系统预定义的变量

(

而键入clear则是去除所有定义过的变量名称。

表达式

MATLAB书写表达式的规则与“手写算式”差不多相同,但要求所有表达式都是以纯文本形式输入。

如果一个指令过长可以在结尾加上...(代表此行指令与下一行连续),例如:

>> 1*2+3*4+5*6+7*8+9*10+11*12+...

13*14+15*16

ans =

744

若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例:y = 1034*22+3^5;

若要显示变数y的值,直接键入y即可:

>>y

y =

22991

MATLAB会忽略所有在百分比符号(%)之後的文字,因此百分比之後的文字均可视为程式的注解(Comments)。

例:计算圆面积Area = ,半径r = 2,则可键入

>> r=2;% 圆半径r = 2,

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

>> area =

12.5664

MATLAB提供基本的算术运算有:加 (+)、减 (-)、乘 (*)、除 (/)、幂次方 (^),范例为:5+3, 5-3, 5*3, 5/3, 5^3

MATLAB常用数学函数

●三角函数和双曲函数

●指数函数

●复数函数

●圆整函数和求余函数

●矩阵变换函数

其他函数

例:

>>y = sin(10)*exp(-0.3*4^2) y =

-0.0045

【例】复数

i

e

z

i

z

i

z6

3

2

1

2

,2

1

,4

3

π

=

+

=

+

=表达,及计算

3

2

1

z

z

z

z=。

(1)经典教科书的直角坐标表示法

z1= 3 + 4i

z1 =

3.0000 +

4.0000i

(2)采用运算符构成的直角坐标表示法和极坐标表示法

z2 = 1 + 2 * i %运算符构成的直角坐标表示法z3=2*exp(i*pi/6) %运算符构成的极坐标表示法

z=z1*z2/z3

z2 =

1.0000 +

2.0000i

z3 =

1.7321 + 1.0000i

z =

0.3349 + 5.5801i

【例】复数矩阵的生成及运算

A=[1,3;2,4]-[5,8;6,9]*i

B=[1+5i,2+6i;3+8*i,4+9*i] C=A*B A =

1.0000 - 5.0000i 3.0000 - 8.0000i

2.0000 - 6.0000i 4.0000 - 9.0000i B =

1.0000 + 5.0000i

2.0000 + 6.0000i

3.0000 + 8.0000i

4.0000 + 9.0000i C =

1.0e+002 *

0.9900 1.1600 - 0.0900i 1.1600 + 0.0900i 1.3700

【例】求上例复数矩阵C 的实部、虚部、模和相角。 C_real=real(C) C_imag=imag(C)

C_magnitude=abs(C)

C_phase=angle(C)*180/pi %以度为单位计算相角 C_real = 99 116 116 137 C_imag = 0 -9 9 0 C_magnitude =

99.0000 116.3486 116.3486 137.0000 C_phase =

0 -4.4365 4.4365 0

【例】指令行操作过程示例。 (1)若用户想计算5

1)3.0sin(21+=

πy 的值,那末用户应依次键入以下字符

y1=2*sin(0.3*pi)/(1+sqrt(5))

(2)按【Enter 】键,该指令便被执行,并给出以下结果 y1 =

0.5000

若又想计算5

1)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.3633

注:设置精度值。 t = 2.8957e-007

digits(8) %精确到小数点后8位 sym(t,'d')

ans =

.28957372e-6 四、阵列与矩阵

MATLAB 的运算事实上是以阵列 (array) 及矩阵 (matrix) 方式在做运算.阵列强调元素对元素的运算,而矩阵则采用线性代数的运算方式.

宣告一变量为阵列或是矩阵时,须用中括号[ ] 将元素置于其中。阵列为一维元素所构成,而矩阵为多维元素所组成.

例如: ? x=[1 2 3 4 5 6 7 8] ;% 一维 1x8 阵列

【例】简单矩阵????

??????=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

【例】矩阵的分行输入 A=[1,2,3 4,5,6 7,8,9]

(以下是显示结果) A =

1 2 3 4 5 6

7 8 9

>>a=[1,4,6,8,10] %一维矩阵

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

ans =

6

?x =[1 2 3 4 5 6 7 8

4 5 6 7 8 9 10 11]; %二维2x8 矩阵

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

ans =

2

? x([1 2 5]) % x的第一、二、五个元素

ans =

1 4 3

>> x(2,3) % x的第二行第三列的元素

ans =

6

x(1:5) % x的第前五个元素

ans =

1 4

2 5 3

? x(10:end) % x的第十个元素后的元素

ans =

8 6 9 7 10 8 11

? x(10:-1:2) % x的第十个元素和第二个元素的倒排

ans =

8 5 7 4 6 3 5 2 4

? x(find(x>5)) % x中大于5的元素

ans =

6 7 8 6 9 7 10 8 11

? x(4)=100 %给x的第四个元素重新给值

x =

1 2 3 4 5 6 7 8

4 100 6 7 8 9 10 11

? x(3)=[] %删除第三个元素(不是二维数组)

x =

Columns 1 through 12

1 4 100 3 6 4 7 5 8 6 9 7

Columns 13 through 15

10 8 11

? x(16)=1 %加入第十六个元素

x =

Columns 1 through 12

1 4 100 3 6 4 7 5 8 6 9 7

Columns 13 through 16

10 8 11 1

当元素很多的时候,则须采用以下的方式:

? x=(1:2.5:120); % 以:起始值=1,增量值=2,终止值=120的矩阵

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

?a=[]%空矩阵

a =

[]

? zeros(2,2) %全为0的矩阵

ans =

0 0

00

? ones(3,3) %全为1的矩阵

ans =

1 1 1

1 1 1

1 1 1

? rand(2,4);%随机矩阵

?a=1:7, b=1:0.2:5; %更直接的方式

?c=[b a];%可利用先前建立的阵列 a 及阵列 b ,组成新阵列

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

阵列运算功能(注意:一定要多加. 符号)

+加-减.*乘./左除.\右除.^次方.'转置

>> a=1:5; a-2 % 从阵列a减2

ans =

-1 0 1 2 3

>> 2*a-1 % 以2乘阵列a再减1

ans =

1 3 5 7 9

>> b=1:2:9; a+b % 阵列a加阵列b

ans =

2 5 8 11 14

>> a.*b % 阵列a及b中的元素与元素相乘

ans =

1 6 15 28 45

>> a./b % 阵列a及b中的元素与元素相除

ans =

1.0000 0.66667 0.6000 0.5714 0.5556

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

ans =

1 4 9 16 25

>> 2.^a % 以2为底,以阵列中的各个元素为次方

ans =

2 4 8 16 32

>> b.^a % 以阵列b中的各个元素为底,以阵列a中的各个元素为次方ans =

1 9 125 2401 59049

>> b=a' % 阵列b是阵列a的转置结果

b =

1

2

3

4

5

矩阵的几种基本变换操作

1. 通过在矩阵变量后加’的方法来表示转置运算

>>a=[10,2,12;34,2,4;98,34,6];

>>a'

ans =

10 34 98

2 2 34

12 4 6

2. 矩阵求逆

>>inv(a)

ans =

-0.0116 0.0372 -0.0015

0.0176 -0.1047 0.0345

0.0901 -0.0135 -0.0045

3. 矩阵求伪逆

>>pinv(a)

ans =

-0.0116 0.0372 -0.0015

0.0176 -0.1047 0.0345

0.0901 -0.0135 -0.0045 4. 左右反转

>>fliplr(a)

ans =

12 2 10

4 2 34

6 34 98

5. 矩阵的特征值>>[u,v]=eig(a)

u =

-0.2960 0.3635 -0.3600 -0.2925 -0.4128 0.7886 -0.9093 -0.8352 0.4985 v =

48.8395 0 0 0 -19.8451 0 0 0 -10.9943 6. 上下反转

>>flipud(a)

ans =

98 34 6

34 2 4

10 2 12

7. 旋转90度

>>rot90(a)

ans =

12 4 6

2 2 34

10 34 98

8. 取出上三角和下三角

>>triu(a)

ans =

10 2 12

0 2 4

0 0 6

>>tril(a)

ans =

10 0 0

34 2 0

98 34 6

>>[l,u]=lu(a)

l = 0.1020 0.1500 1.0000

0.3469 1.0000 0

1.0000 0 0

u = 98.0000 34.0000 6.0000

0 -9.7959 1.9184

0 0 11.1000

9. 正交分解

>>[q,r]=qr(a)

q =

-0.0960 -0.1232 -0.9877 -0.3263 -0.9336 0.1482 -0.9404 0.3365 0.0494 r =

-104.2113 -32.8179 -8.0989 0 9.3265 -3.1941

0 0 -10.9638 10.奇异值分解

>>[u,s,v]=svd(a)

u =

0.1003 -0.8857 0.4532

0.3031 -0.4066 -0.8618

0.9477 0.2239 0.2277

s =

109.5895 0 0

0 12.0373 0

0 0 8.0778

v =

0.9506 -0.0619 -0.3041

0.3014 0.4176 0.8572

0.0739 -0.9065 0.4156 11.求矩阵的范数

>>norm(a)

ans =

109.5895

>>norm(a,1) ans =

142

>>norm(a,inf) ans =

138

MATLAB运算基础第2章答案

实验01讲评、参考答案 讲评 未交实验报告的同学名单 批改情况: 问题1: 不仔细,式子中出错。 问题2: 提交的过程不完整。 问题3: 使用语句尾分号(;)不当,提交的过程中不该显示的结果显示。 问题4: 截屏窗口没有调整大小。

附参考答案: 实验01 MATLAB 运算基础 (第2章 MATLAB 数据及其运算) 一、实验目的 1、 熟悉启动与退出MATLAB 的方法。 2、 熟悉MATLAB 命令窗口的组成。 3、 掌握建立矩阵的方法。 4、 掌握MATLAB 各种表达式的书写规则以及常用函数的使用。 二、实验内容 1、 数学表达式计算 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。 1、1 计算三角函数 12 2sin 851z e =+(注意:度要转换成弧度,e 2如何给出) 示例:点击Command Window 窗口右上角的,将命令窗口提出来成悬浮窗口,适当调 整窗口大小。 命令窗口中的执行过程: 《MATLAB 软件》课内实验 王平

1、2 计算自然对数 221 ln(1)2z x x =++,其中2120.45 5i x +??=??-??(提示:clc 命令擦除命令窗口,clear 则清除工作空间中的所有变量,使用时注意区别,慎用clear 命令。 应用点乘方) 命令窗口中的执行过程: 1、3 求数学表达式的一组值 0.30.330.3sin(0.3)ln , 3.0, 2.9, ,2.9,3.022 a a e e a z a a --+=++=-- 提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。 命令窗口中的执行过程:

实验一 基本信号在MATLAB中的表示和运算

实验一 基本信号在MATLAB 中的表示和运算 一、实验目的 1. 学会用MA TLAB 表示常用连续信号的方法; 2. 学会用MA TLAB 进行信号基本运算的方法; 二、实验原理 1. 连续信号的MATLAB 表示 MATLAB 提供了大量的生成基本信号的函数,例如指数信号、正余弦信号。表示连续 时间信号有两种方法,一是数值法,二是符号法。数值法是定义某一时间范围和取样时间间 隔,然后调用该函数计算这些点的函数值,得到两组数值矢量,可用绘图语句画出其波形; 符号法是利用MATLAB 的符号运算功能,需定义符号变量和符号函数,运算结果是符号表 达的解析式,也可用绘图语句画出其波形图。 例1-1指数信号 指数信号在MATLAB 中用exp 函数表示。 如at Ae t f =)(,调用格式为 ft=A*exp(a*t) 程序是 A=1; a=-0.4; t=0:0.01:10; %定义时间点 ft=A*exp(a*t); %计算这些点的函数值 plot(t,ft); %画图命令,用直线段连接函数值表示曲线 grid on; %在图上画方格 例1-2 正弦信号 正弦信号在MATLAB 中用 sin 函数表示。 调用格式为 ft=A*sin(w*t+phi) A=1; w=2*pi; phi=pi/6; t=0:0.01:8; %定义时间点 ft=A*sin(w*t+phi); %计算这些点的函数值 plot(t,ft); %画图命令 grid on; %在图上画方格 例1-3 抽样信号 抽样信号Sa(t)=sin(t)/t 在MA TLAB 中用 sinc 函数表示。定义为 )/(sin )(πt c t Sa = t=-3*pi:pi/100:3*pi; ft=sinc(t/pi); plot(t,ft); grid on; axis([-10,10,-0.5,1.2]); %定义画图范围,横轴,纵轴 title('抽样信号') %定义图的标题名字 例1-4 三角信号 三角信号在MATLAB 中用 tripuls 函数表示。

matlab中的矩阵的基本运算命令

1.1 矩阵的表示 1.2 矩阵运算 1.2.14 特殊运算 1.矩阵对角线元素的抽取 函数diag 格式X = diag(v,k) %以向量v的元素作为矩阵X的第k条对角线元素,当k=0时,v为X的主对角线;当k>0时,v为上方第k条对角线;当k<0时,v为下方第k条对角线。 X = diag(v) %以v为主对角线元素,其余元素为0构成X。 v = diag(X,k) %抽取X的第k条对角线元素构成向量v。k=0:抽取主对角线元素;k>0:抽取上方第k条对角线元素;k<0抽取下方第k条对角线元素。 v = diag(X) %抽取主对角线元素构成向量v。 2.上三角阵和下三角阵的抽取 函数tril %取下三角部分 格式L = tril(X) %抽取X的主对角线的下三角部分构成矩阵L L = tril(X,k) %抽取X的第k条对角线的下三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。函数triu %取上三角部分 格式U = triu(X) %抽取X的主对角线的上三角部分构成矩阵U U = triu(X,k) %抽取X的第k条对角线的上三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。3.矩阵的变维 矩阵的变维有两种方法,即用“:”和函数“reshape”,前者主要针对2个已知维数矩阵之间的变维操作;而后者是对于一个矩阵的操作。 (1)“:”变维 (2)Reshape函数变维 格式 B = reshape(A,m,n) %返回以矩阵A的元素构成的m×n矩阵B B = reshape(A,m,n,p,…) %将矩阵A变维为m×n×p×… B = reshape(A,[m n p…]) %同上 B = reshape(A,siz) %由siz决定变维的大小,元素个数与A中元素个数 相同。 (5)复制和平铺矩阵 函数repmat 格式 B = repmat(A,m,n) %将矩阵A复制m×n块,即B由m×n块A平铺而成。 B = repmat(A,[m n]) %与上面一致 B = repmat(A,[m n p…]) %B由m×n×p×…个A块平铺而成 repmat(A,m,n) %当A是一个数a时,该命令产生一个全由a组成的m×n矩阵。 1.3 矩阵分解 1.3.1 Cholesky分解 函数chol 格式R = chol(X) %如果X为n阶对称正定矩阵,则存在一个实的非奇异上三角阵R,满足R'*R = X;若X非正定,则产生错误信息。 [R,p] = chol(X) %不产生任何错误信息,若X为正定阵,则p=0,R与上相同;若X非正定,则p为正整数,R是有序的上三角阵。 1.3.2 LU分解

matlab基本运算与函数

1-1、基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter 键即可。例如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。 小提示: ">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。 我们也可将上述运算式的结果设定给另一个变数x: x = (5*2+1.3-0.8)*10^2/25 x = 42 此时MATLAB会直接显示x的值。由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。 小提示: MATLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variable declaration)。MATLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的MATLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。 若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例:y = sin(10)*exp(-0.3*4^2); 若要显示变数y的值,直接键入y即可: >>y y =-0.0045 在上例中,sin是正弦函数,exp是指数函数,这些都是MATLAB常用到的数学函数。 下表即为MATLAB常用的基本数学函数及三角函数: 小整理:MATLAB常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数 rat(x):将实数x化为分数表示 rats(x):将实数x化为多项分数展开 sign(x):符号函数 (Signum function)。 当x<0时,sign(x)=-1; 当x=0时,sign(x)=0; 当x>0时,sign(x)=1。 > 小整理:MATLAB常用的三角函数 sin(x):正弦函数

实验一 MATLAB运算基础

实验一 MATLAB 运算基础 一、实验目的 1.熟悉启动和退出MATLAB 的方法; 2.熟悉MATLAB 命令窗口的组成; 3.掌握建立矩阵的方法; 4.掌握MATLAB 各种表达式的书写规则以及常用函数的使用。 二、实验内容 1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。 ⑴21185sin 2e z +?=; >> z1=2*sin(85*pi/180)/(1+exp(2)) z1 = 0.2375 ⑵)1ln(2122x x z ++=,其中?? ????-+=545.0212i x ; >> x=[2 1+2i;-0.45 5]; >> z2=1/2*log(x+sqrt(1+x^2)) z2 = 0.7114 - 0.0253i 0.8968 + 0.3658i 0.2139 + 0.9343i 1.1541 - 0.0044i ⑶0.3,9.2,8.2,,8.2,9.2,0.3,2 3.0ln )3.0sin(23.03.03 ---=+++-=-a a a e e z a a >> a=(-3.0:0.1:3.0); >> z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2) z3 = Columns 1 through 3 0.7388 + 3.1416i 0.7696 + 3.1416i 0.7871 + 3.1416i Columns 4 through 6 0.7913 + 3.1416i 0.7822 + 3.1416i 0.7602 + 3.1416i Columns 7 through 9

MatLab基本运算

MatLab & 数学建模 第一讲简介及基本运算 一、简介 MATLAB名字由MATrix和 LABoratory 两词的前三个字母组合而成。那是20世纪七十年代后期的事:时任美国新墨西哥大学计算机科学系主任的Cleve Moler教授出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB。 经几年的校际流传,在Little的推动下,由Little、Moler、Steve Bangert合作,于1984年成立了MathWorks公司,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。 MATLAB以商品形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包(如英国的UMIST,瑞典的LUND和SIMNON,德国的KEDDC)纷纷淘汰,而改以MATLAB为平台加以重建。在时间进入20世纪九十年代的时候,MATLAB 已经成为国际控制界公认的标准计算软件。 在欧美大学里,诸如应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教科书都把MATLAB作为内容。这几乎成了九十年代教科书与旧版书籍的区别性标志。在那里,MATLAB是攻读学位的大学生、硕士生、博士生必须掌握的基本工具。 在国际学术界,MATLAB已经被确认为准确、可靠的科学计算标准软件。在许多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到MATLAB的应用。 在设计研究单位和工业部门,MATLAB被认作进行高效研究、开发的首选软件工具。如美国National Instruments公司信号测量、分析软件LabVIEW,Cadence公司信号和通信分析设计软件SPW等,或者直接建筑在MATLAB之上,或者以MATLAB为主要支撑。又如HP公司的VXI硬件,TM公司的DSP,Gage公司的各种硬卡、仪器等都接受MATLAB的支持。 MATLAB具有用法简易、可灵活运用、程式结构强又兼具延展性。以下为其几个特色: ?功能强的数值运算 - 在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函数可使用,函数的标示自然,使得问题和解答像数学式子一般简单明了,让使用者可全力发挥在解题方面,而非浪费在电脑操作上。 ?先进的资料视觉化功能 - MATLAB的物件导向图形架构让使用者可执行视觉数据分,并制作高品质的图形,完成科学性或工程性图文并茂的文章。 ?高阶但简单的程式环境 - 作为一种直译式的程式语言,MATLAB容许使用者在短时间内写完程式,所花的时间约为用 FORTRAN 或 C 的几分之一,而且不需要编译 (compile)及联结 (link) 即能执行,同时包含了更多及更容易使用的内建功能。 ?开放及可延伸的架构 - MATLAB容许使用者接触它大多数的数学原使码,检视运算法,更改现存函数,甚至加入自己的函数使 MATLAB成为使用者所须要的环境。 ?丰富的程式工具箱 - MATLAB的程式工具箱融合了套装前软体的优点,与一个灵活的开放但容易操作之环境,这些工具箱提供了使用者在特别应用领域所需之许多函数。现有工具箱有:符号运算(利用Maple V的计算核心执行)、影像处理、统计分析、讯号处理、神经网路、模拟分析、控制系统、即时控制、系统确认、强建控制、弧线分析、最佳化、模糊逻辑、mu分析及合成、化学计量分析。 二、MatLab界面

(完整版)matlab基础练习题及答案

第1章MATLAB基础 1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 答:在MATLAB操作桌面上有五个窗口。在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close 按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口。在独立窗口的Desktop菜单中选择Dock...项就可以将独立的窗口重新放置到桌面上。 1.5 如何启动M文件编辑/调试器? 答:在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。 1.6 存储在工作空间中的数组能编辑吗?如何操作? 答:存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 答:命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选

定的内容拷贝到剪贴板中、将选定内容直接拷贝到M 文件中。 1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别? 答:当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file 菜单中的Set Path 菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB 运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。 1.9 在MATLAB 中有几种获得帮助的途径? 答:(1)帮助浏览器:选择view 菜单中的Help 菜单项或选择Help 菜单中的MATLAB Help 菜单项可以打开帮助浏览器。 (2)help 命令:在命令窗口键入“help ” 命令可以列出帮助主题,键入“help 函数名”可以得到指定函数的在线帮助信息。 (3)lookfor 命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数。 (4)模糊查询:输入命令的前几个字母,然后按Tab 键,就可以列出所有以这几个字母开始的命令和函数。 注意:lookfor 和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help 命令显示详细信息。 第2章 MATLAB 矩阵运算基础 2.1 在MATLAB 中如何建立矩阵?? ? ? ??194375,并将其赋予变量a ? 答:在Command Window 窗口输入操作:

实验一 MATLAB 运算基础

实验一MATLAB 运算基础 二、1(3) for a=-0.3:0.1:3.0 z3=((exp(0.3*a)-exp(-0.3*a)))/2*sin(a+0.3)+log((0.3+a)/2); disp('z3='); disp(z3); end 结果是: z3=-Inf,-3.0017,-2.3085,-1.8971,-1.5978,-1.3575,-1.1531,-0.9723,-0.8083,-0.6567,-0.5151,-0.381 9,-0.2561,-0.1374,-0.0255,0.0792,0.1766,0.2663,0.3478,0.4206,0.4841,0.5379,0.5815,0.6145,0.63 66,0.6474,0.6470,0.6351,0.6119,0.5777,0.5327,0.4774,0.4126,0.3388 二、1(4) for t=0:0.5:2.5; if 0<=t&t<1 z4=t*t; disp('z4=t*t='); disp(z4); end if 1<=t&t<2 z4=t*t-1; disp('z4=t*t-1='); disp(z4); end if 2<=t&t<3 z4=t*t-2*t+1; disp('z4=t*t-2*t+1='); disp(z4); end end 结果:z4=t*t=0 z4=t*t=0.2500 z4=t*t-1=0 z4=t*t-1=1.2500 z4=t*t-2*t+1=1 z4=t*t-2*t+1=2.2500 二、4(1) data=0; for t=100:999 if rem(t,21)==0; data=data+1; end end disp('100到999之间能被21整除的数的个数是:') disp(data); 结果:100到999之间能被21整除的数的个数是:43 二、4(2)

实验一 MATLAB基本操作及运算

实验一 MATLAB 基本操作及运算 一、 实验目的 二、 实验的设备及条件 三、 实验内容 1、 建立以下标量: 1) a=3 2) ,(j 为虚数单位) 3) c=3/2πj e 2、 建立以下向量: 1) Vb= 2.71382882????????-???? 2) Vc=[4 3.8 … -3.8 -4 ] (向量中的数值从4到-4,步长为-0.2) 3、 建立以下矩阵: 1) 3333Ma ????=?????? L M O M L Ma 为一个7×7的矩阵,其元素全为3. 2) 111912129210 20100Mb ??????=?????? L O M M O M L

Mb 为一个10×10的矩阵. 3) 114525173238Mc ????=?????? 4、 使用题1中的变量计算下列等式的x,y,z 的值: 1) ((15)/6)111a x e --=+ 2) 2x π= 3) 3ln([()()]sin(/3))x b c b c a π=+-R ,其中R 表示复数实部。 5、 求解函数值22/(2.25)ct y e -=,其中c 取值见题1,t 的取值范围为题2中行 向量Vc 。 6、 使用题1和题3中所产生的标量和矩阵计算等式 1()()T Mx a Mc Mc Mc -=?? 其中*为矩阵所对应行列式的值,参考det 。 7、 函数的使用和矩阵的访问。 1) 计算矩阵Mb 每一列的和,结果应为行向量形式。 2) 计算整个矩阵Mb 的平均值。 3) 用向量[1 1…1] 替换Mb 的最上一行的值 4) 将矩阵Mb 的第2~5行,第3到9列的元素所构成的矩阵赋值给矩阵 SubMb 。 5) 删除矩阵Mb 的第一行; 6) 使用函数rand 产生一个1×10的向量r ,并将r 中值小于0.5的元素设置 为0。 8、 已知CellA (1, 1)=‘中国’,CellA (1,2)=‘北京’,CellA (2,1) 是一个3乘3的单位阵,CellA (2, 2)=[1 2 3],试用MATLAB 创建一个2×2的细胞数组CellA 。 9、 已知结构数组student 中信息包含有姓名,学号,性别,年龄和班级,试 用MATLAB 创建相应的结构数组student 。该数组包含有从自己学号开始连续5个同学的信息(如果学号在你后面的同学不足5个则往前排序),创建完成后查看自己的信息。

基于MATLAB的图像处理的基本运算

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位: 题目: 基于MATLAB的图像处理的基本运算 初始条件: 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) (1)能够对图像亮度和对比度变化调整,并比较结果 (2)编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的和旋转操作,并保存,比较几 种插值的效果 (3)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。 (4)对图像加入各种噪声,比较效果。 时间安排: 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 摘要..................................................................................................................................................... - 2 -1 MATLAB简介 ................................................................................................................................... - 2 -2图像选择及变换.............................................................................................................................. - 3 -2.1 原始图像选择读取.................................................................................................................. - 3 - 2.1.1 原理图的读入与基本变换 ............................................................................................... - 3 - 2.1.2 程序源代码及调试结果 ................................................................................................... - 4 - 2.2 转换图像为灰阶图像.............................................................................................................. - 6 - 3 图像处理及代码程序 ..................................................................................................................... - 6 -3.1 图像亮度对比度调整.............................................................................................................. - 7 - 3.1.1 函数说明及参数选择....................................................................................................... - 7 - 3.1.2 源程序及运行结果........................................................................................................... - 7 -3.2 图像放大和缩小...................................................................................................................... - 8 - 3.2.1 函数说明及参数选择....................................................................................................... - 8 - 3.2.2 源程序及运行结果........................................................................................................... - 8 -3.3 图像任意角度的旋转.............................................................................................................. - 9 - 3.3.1 函数说明及参数旋转....................................................................................................... - 9 - 3.3.2 源程序及运行结果........................................................................................................... - 9 -3.4图像直方图统计和均衡......................................................................................................... - 10 - 3.4.1 函数说明及参数选择..................................................................................................... - 10 - 3.4.2 源程序及运行结果......................................................................................................... - 11 -3.5 图像加入噪声........................................................................................................................ - 13 - 3.5.1 函数说明及参数选择..................................................................................................... - 13 - 3.5.2 源程序及运行结果......................................................................................................... - 13 - 4 图像处理结果比较分析 ............................................................................................................... - 16 -4.1 调整对比度和亮度后图像比较 ............................................................................................ - 16 -4.2 图像放大缩小及旋转后比较 ................................................................................................ - 16 -4.3 进行直方图均衡后图像比较 ................................................................................................ - 17 -4.4加入各种噪声后图像比较 ..................................................................................................... - 18 -5感悟体会小结................................................................................................................................ - 19 -参考文献........................................................................................................................................... - 20 -

练习一:matlab基本运算

2.1 在MA TLAB 中如何建立矩阵?? ? ? ??194375,并将其赋予变量a ? >> a=[5 7 3;4 9 1] 2.3 在进行算术运算时,数组运算和矩阵运算各有什么要求? 进行数组运算的两个数组必须有相同的尺寸。进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a 与b 相乘(a*b )时必须满足a 的列数等于b 的行数。 2.4 数组运算和矩阵运算的运算符有什么区别? 在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算,如a*b 为矩阵乘,a.*b 为数组乘。 2.5 计算矩阵??????????897473535与???? ? ?????638976242之和。 >> a=[5 3 5;3 7 4;7 9 8]; >> b=[2 4 2;6 7 9;8 3 6]; >> a+b ans = 7 7 7 9 14 13 15 12 14 2.7 计算???? ??=572396a 与?? ? ???=864142b 的数组乘积。 >> a=[6 9 3;2 7 5]; >> b=[2 4 1;4 6 8]; >> a.*b ans = 12 36 3 8 42 40 2.8 “左除”与“右除”有什么区别? 在通常情况下,左除x=a\b 是a*x=b 的解,右除x=b/a 是x*a=b 的解,一般情况下,a\b ≠b/a 。

2.9 对于B AX =,如果??????????=753467294A ,???? ? ?????=282637B ,求解X 。 >> A=[4 9 2;7 6 4;3 5 7]; >> B=[37 26 28]’; >> X=A\B X = -0.5118 4.0427 1.3318 2.10 已知:???? ? ?????=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。 >> a=[1 2 3;4 5 6;7 8 9]; >> a.^2 ans = 1 4 9 16 25 36 49 64 81 >> a^ 2 ans = 30 36 42 66 81 96 102 126 150 2.11 ? ? ?? ??=654321a ,??? ???-=263478b ,观察a 与b 之间的六种关系运算的结果。 >> a=[1 2 3;4 5 6]; >> b=[8 –7 4;3 6 2]; >> a>b ans = 0 1 0 1 0 1 >> a>=b ans =

实验二 MATLAB运算基础

实验二、MATLAB 运算基础 一、 实验目的 1.熟悉启动和退出MATLAB 的方法。 2.熟悉MATLAB 命令窗口的组成。 3.掌握建立矩阵的方法。 4.掌握MATLAB 各种表达式的书写规则以及常用函数的使用。 二、 实验内容及结果 1.先求出下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。 (1)2 1e 185sin 2z +? = (2))(22x 1x ln 21 z ++= ,其中??????+=545 .0-i 212x (3)2 a 3.0ln 3.0a sin 2e -e z a 3.0-a 3.03+++=)(,a=-0.3,-2.9,-2.8,…,2.8,2.9,3.0 提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。

(4)?? ? ??<≤+-<≤-<≤=32,1221,110,z 2224t t t t t t t ,其中t=0:0.5:2.5 提示:用逻辑表达式求分段函数值。 2.已知: ??????????=7653877344-3412A ,?? ?? ? ?????=72-33021-31B 求下列表达式的值: (1)A+6*B 和A-B+I (其中I 为单位矩阵) (2)A*B 和A.*B (3)A^3和A.^3 (4)A/B 及B\A (5)[A,B]和[A([1,3],:);B^2] 程序:

结果:

3.设有矩阵A 和B ??? ???? ???? ?? ???=2524 23222120191817161514 13121110987654321A ,????? ??? ????????=111340794-23096-171603B (1)求它们的乘积C 。

(完整版)第一讲Matlab基本数值计算.doc

2012 年数学建模培训材料——Matlab 软件的使用 第一讲Matlab基本数值计算 一、矩阵 在Matlab 中,一个矩阵可以使数学意义上的矩阵,也可以是标量或者向量。对于一个标量(一个数)可以将之作为 1 1的矩阵,而向量(一行或一列)则可以认为是 1 n 或者 n 1的矩阵。另外,一个 0 0 矩阵在 Matlab 中被认为是空矩阵,用“[] ”表示。 1、矩阵的创建 矩阵的创建可以有以下几种形式 ⑴直接输入 >> A=[1 2 3;4 3 7;2 4 1] 注意:每行间的元素用逗号或空格分开,行与行之间用分号或回车分开,矩阵标示是一对中括号[ ] 。 也可以采用数组编辑器(Array Editor )像在 Excel 电子表格中据那样输入数据。 ⑵通过语句和函数产生 常用的特殊矩阵: zeros:全零矩阵 ,ones:全 1 矩阵, eye:单位矩阵, rand:随机矩阵, diag:对角阵等。 例: >> A=ones(3,4) >>E=eye(3) >>D=diag([3 5 2]) ⑶对矩阵进行裁剪或拼接 ⑷从外部文件装入数据

外部数据文件可以是以保存的Matlab 工作空间,也可以是文本(.txt)文件,或者是电子表格创建的文件( .xls). 例:已知一个文本格式的数据文件 E:\Mathmodel\data1.txt >> load e:\Mathmodel\data1.txt 得到一个变量名与文件名相同的矩阵(data1)。注意:文件的扩展名不能省略。 例:已知一个 Excel 文件的路径为E:\Mathmodel\data2.xls a. 缺省操作 : >> NUMBER=xlsread('E:\Mathmodel\data2.xls') >>[NUMBER,TXT]=xlsread('E:\Mathmodel\data2.xls') 默认操作是从第一个工作表(sheet1)中提取数据。 b.从指定的工作表(而不是第一个)中提取数据: >> NUMBER=xlsread('E:\Mathmodel\data2.xls','S2') 或者 >>NUMBER=xlsread('E:\Mathmodel\data2.xls',2) c.从指定的工作表中读取指定区域的数据: >>NUMBER=xlsread('E:\Mathmodel\data2.xls',2,'g3:i8') 2、Matlab 的矩阵运算 ⑴基本运算 矩阵的加( +)、减( -)、乘( * )、乘方( ^)运算法则与代数中的定义完全一致。例如: >>A=[1 2;3 4];B=[3 1;4 8];

MATLAB矩阵运算基础练习题

第2章 MATLAB 矩阵运算基础 在MATLAB 中如何建立矩阵?? ?? ??194375,并将其赋予变量a 请产生一个100*5的矩阵,矩阵的每一行都是[1 2 3 4 5] 产生一个1x10的随机矩阵,大小位于(-5 5) 有几种建立矩阵的方法各有什么优点 可以用四种方法建立矩阵: ①直接输入法,如a=[2 5 7 3],优点是输入方法方便简捷; ②通过M 文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改; ③由函数建立,如y=sin(x),可以由MATLAB 的内部函数建立一些特殊矩阵; ④通过数据文件建立,该方法可以调用由其他软件产生数据。 在进行算术运算时,数组运算和矩阵运算各有什么要求 进行数组运算的两个数组必须有相同的尺寸。进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a 与b 相乘(a*b )时必须满足a 的列数等于b 的行数。 数组运算和矩阵运算的运算符有什么区别 在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算,如a*b 为矩阵乘,a.*b 为数组乘。 计算矩阵??????????897473535与???? ??????638976242之和,差,积,左除和右除。 求?? ?? ??+-+-+-+-++=i 44i 93i 49i 67i 23i 57i 41i 72i 53i 84x 的共轭转置。 计算???? ??=572396a 与??????=864142b 的数组乘积。 “左除”与“右除”有什么区别 在通常情况下,左除x=a\b 是a*x=b 的解,右除x=b/a 是x*a=b 的解,一般情况下,a\bb/a 。 对于B AX =,如果??????????=753467294A ,???? ??????=282637B ,求解X 。 已知:???? ??????=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。 ??????-=463521a ,?? ????-=263478b ,观察a 与b 之间的六种关系运算的结果。

相关主题
文本预览
相关文档 最新文档