MATLAB入门教程之MATLAB的基本知识

2012-03-27 10:59:40来源: 互联网

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):正弦函数
cos(x):馀弦函数
tan(x):正切函数
asin(x):反正弦函数
acos(x):反馀弦函数
atan(x):反正切函数
atan2(x,y):四象限的反正切函数
sinh(x):超越正弦函数
cosh(x):超越馀弦函数
tanh(x):超越正切函数
asinh(x):反超越正弦函数
acosh(x):反超越馀弦函数
atanh(x):反超越正切函数  
变数也可用来存放向量或矩阵,并进行各种运算,如下例的列向量(Row vector)运算:
x = [1 3 5 2];  
y = 2*x+1  
y = 3 7 11 5  
小提示:变数命名的规则  
1.第一个字母必须是英文字母 2.字母间不可留空格 3.最多只能有19个字母,MATLAB会忽略多馀字母  
我们可以随意更改、增加或删除向量的元素: 
y(3) = 2 % 更改第三个元素  
y =3 7 2 5  
y(6) = 10 % 加入第六个元素  
y = 3 7 2 5 0 10  
y(4) = [] % 删除第四个元素,  
y = 3 7 2 0 10  
在上例中,MATLAB会忽略所有在百分比符号(%)之後的文字,因此百分比之後的文字均可视为程式的注解(Comments)。MATLAB亦可取出向量的一个元素或一部份来做运算: 
x(2)*3+y(4) % 取出x的第二个元素和y的第四个元素来做运算  
ans = 9  
y(2:4)-1 % 取出y的第二至第四个元素来做运算  
ans = 6 1 -1  
在上例中,2:4代表一个由2、3、4组成的向量
 
若对MATLAB函数用法有疑问,可随时使用help来寻求线上支援(on-line help):help linspace  
小整理:MATLAB的查询命令
help:用来查询已知命令的用法。例如已知inv是用来计算反矩阵,键入help inv即可得知有关inv命令的用法。(键入help help则显示help的用法,请试看看!) lookfor:用来寻找未知的命令。例如要寻找计算反矩阵的命令,可键入 lookfor inverse,MATLAB即会列出所有和关键字inverse相关的指令。找到所需的命令後,即可用help进一步找出其用法。(lookfor事实上是对所有在搜寻路径下的M档案进行关键字对第一注解行的比对,详见後叙。)  
将列向量转置(Transpose)後,即可得到行向量(Column vector):  
z = x'  
z = 4.0000  
   5.2000  
   6.4000  
   7.6000  
   8.8000  
   10.0000   
不论是行向量或列向量,我们均可用相同的函数找出其元素个数、最大值、最小值等: 
length(z) % z的元素个数  
ans = 6  
max(z) % z的最大值  
ans = 10  
min(z) % z的最小值  
ans =   4  
小整理:适用於向量的常用函数有:
min(x): 向量x的元素的最小值
max(x): 向量x的元素的最大值
mean(x): 向量x的元素的平均值
median(x): 向量x的元素的中位数
std(x): 向量x的元素的标准差
diff(x): 向量x的相邻元素的差
sort(x): 对向量x的元素进行排序(Sorting)
length(x): 向量x的元素个数
norm(x): 向量x的欧氏(Euclidean)长度
sum(x): 向量x的元素总和
prod(x): 向量x的元素总乘积
cumsum(x): 向量x的累计元素总和
cumprod(x): 向量x的累计元素总乘积
dot(x, y): 向量x和y的内积
cross(x, y): 向量x和y的外积(大部份的向量函数也可适用於矩阵,详见下述。) 
 
若要输入矩阵,则必须在每一列结尾加上分号(;),如下例:  
A = [1 2 3 4; 5 6 7 8; 9 10 11 12];   
A =   
1 2 3 4   
5 6 7 8   
9 10 11 12  
同样地,我们可以对矩阵进行各种处理:  
A(2,3) = 5 % 改变位於第二列,第三行的元素值  
A =   
1 2 3 4  
5 6 5 8   
9 10 11 12   
B = A(2,1:3) % 取出部份矩阵B  
B = 5 6 5  
A = [A B'] % 将B转置後以行向量并入A  
A =   
1 2 3   4 5   
5 6 5   8 6   
9 10 11 12 5  
A(:, 2) = [] % 删除第二行(:代表所有列)  
A =   
1 3 4 5   
5 5 8 6   
9 11 12 5  
A = [A; 4 3 2 1] % 加入第四列   
A =   
1 3   4   5   
5 5   8   6   
9 11 12 5  
4 3   2   1  
A([1 4], :) = [] % 删除第一和第四列(:代表所有行)  
A =   
5 5   8   6   
9 11 12 5  
这几种矩阵处理的方式可以相互叠代运用,产生各种意想不到的效果,就看各位的巧思和创意。  
小提示:在MATLAB的内部资料结构中,每一个矩阵都是一个以行为主(Column-oriented )的阵列(Array)因此对於矩阵元素的存取,我们可用一维或二维的索引(Index)来定址。举例来说,在上述矩阵A中,位於第二列、第三行的元素可写为A(2,3) (二维索引)或A(6)(一维索引,即将所有直行进行堆叠後的第六个元素)。  
此外,若要重新安排矩阵的形状,可用reshape命令:  
B = reshape(A, 4, 2) % 4是新矩阵的列数,2是新矩阵的行数  
B =  
5   8   
9   12   
5   6  
11 5  
小提示: A(:)就是将矩阵A每一列堆叠起来,成为一个行向量,而这也是MATLAB变数的内部储存方式。以前例而言,reshape(A, 8, 1)和A(:)同样都会产生一个8x1的矩阵。 
MATLAB可在同时执行数个命令,只要以逗号或分号将命令隔开:  
x = sin(pi/3); y = x^2; z = y*10,
z =   
7.5000  
若一个数学运算是太长,可用三个句点将其延伸到下一行: 
z = 10*sin(pi/3)* ...  
sin(pi/3);  
若要检视现存於工作空间(Workspace)的变数,可键入who:  
who  
Your variables are:  
testfile x  
这些是由使用者定义的变数。若要知道这些变数的详细资料,可键入:  
whos  
Name Size Bytes Class 
A 2x4 64 double array  
B 4x2 64 double array  
ans 1x1 8 double array  
x 1x1 8 double array  
y 1x1 8 double array  
z 1x1 8 double array  
Grand total is 20 elements using 160 bytes  
使用clear可以删除工作空间的变数:  
clear A  
A  
??? Undefined function or variable 'A'.  
另外MATLAB有些永久常数(Permanent constants),虽然在工作空间中看不到,但使用者可直接取用,例如:  
[1] [2]

关键字:MATLAB  入门教程  基本知识

编辑:神话 引用地址:http://www.eeworld.com.cn/mndz/2012/0327/article_15461.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
MATLAB
入门教程
基本知识

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved