MatLab基本运算
第二讲 MATLAB基本运算
矩阵下标的用途
访问超出矩阵范围时,产生 Index exceeds matrix dimentions 存储超出矩阵范围时,矩阵自动调节 大小,将指定位置元素置入,其他没 指定数的位置默认为零。
2010-12-25
21
矩阵下标的用途
(2)矩阵连接 例:a=[1 2;3 4] b=[a a+5; a-5 zeros(size(a)] 将小矩阵嵌套入大矩阵,实现矩阵连接。
将矩阵按创建原则写入一个M文件, 在MATLAB的命令窗口或程序中直接执 行该M文件,即将矩阵调入工组空间。
2010-12-25
15
利用MATLAB函数创建矩阵 利用MATLAB函数创建矩阵 MATLAB
ones( m, n) - m行n列的1阵产生 zeros(m, n) -产生m行n列的全0阵 rand(m, n) -产生m行n列均匀分布全列的在 [0,1]区间的随机阵 randn(m, n) -产生m行n列的正态分布矩阵 eye(n) -产生n维单位阵
2010-12-25 18
2.2.3 矩阵的下标 .2.3
子矩阵提取A(v1, v2)
v1表示子矩阵包含的行标构成的向量 v2表示子矩阵包含的列标构成的向量 B1=A(:, [1, 3]) 为:时表示要提取所有行(列) B2=A(1:2:end, :) end表示最后一行(列) B3=A([3,2,1],[2,3,4]) 例: B4=A(:, end:-1:1) 提取A矩阵所有行、1,3列 提取A矩阵 3,2,1 行、2,3,4 列构成子矩阵 提取A矩阵全部奇数行,所有列 将A矩阵左右翻转
2010-12-25
13
直接输入法创建矩阵
例:创建矩阵
实验一 Matlab基本操作及运算
实验一Matlab基本操作及运算一、实验目的:1.熟悉MATLAB基本操作2.掌握矩阵、变量、表达式的各种基本运算二、实验基本知识:1.熟悉MATLAB环境熟悉MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器文件和搜索路径浏览器。
2.掌握MATLAB常用命令3.MATLAB变量与运算符变量命名规则如下:(1)变量名可以由英语字母、数字和下划线组成(2)变量名应以英文字母开头(3)长度不大于31个(4)区分大小写MATLAB中设置了一些特殊的变量与常量,列于下表。
MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符表2 MATLAB算术运算符表3 MATLAB关系运算符表4 MATLAB逻辑运算符表5 MATLAB特殊运算4. MATLAB的一维、二维数组的访问表6 子数组访问与赋值常用的相关指令格式5. MATLAB的基本运算表7 两种运算指令形式和实质内涵的异同表6.MATLAB的常用函数表8 标准数组生成函数表9 数组操作函数7.多项式运算poly——产生特征多项式系数向量roots——求多项式的根p=poly2str(c,‘x’)—(将特征多项式系数向量c转换为以习惯方式显示是多项式)conv, convs——多项式乘运算deconv——多项式除运算polyder(p)——求p的微分polyder(a, b)——求多项式a,b乘积的微分[p,q]=polyder(p1,p2)——求解多项式p1/p2微分的有理分式poly(p,A)——按数组运算规则求多项式p在自变量A的值polym(p,A)——按矩阵运算规则求多项式p在自变量A的值三、实验内容1、新建一个文件夹(自己的名字命名)2、启动MATLAB,将该文件夹添加到MATLAB路径管理器中。
方法如下:3、保存,关闭对话框(要求抓取自己实验的图,插入到自己的实验报告中)4、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye(其它不会用的指令,依照此方法类推)5、使用clc 、clear ,观察command window 、command history 和workspace等窗口的变化结果。
实验一 MATLAB运算基础
实验一 MATLAB 运算基础1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1) 0122sin851z e =+>> z1=2*sin(85*pi/180)/(1+exp(2))z1 =0.2375(2) 21ln(2z x =+,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦>> x=[2 1+2*i;-0.45 5];>> z2=1/2*log(x+sqrt(1+x*x))z2 =0.7114 - 0.0253i 0.8968 + 0.3658i0.2139 + 0.9343i 1.1541 - 0.0044i (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a 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 20.7388 + 3.1416i 0.7696 + 3.1416iColumns 3 through 40.7871 + 3.1416i 0.7913 + 3.1416iColumns 5 through 60.7822 + 3.1416i 0.7602 + 3.1416iColumns 7 through 80.7254 + 3.1416i 0.6784 + 3.1416iColumns 9 through 100.6196 + 3.1416i 0.5496 + 3.1416i Columns 11 through 120.4688 + 3.1416i 0.3780 + 3.1416i Columns 13 through 140.2775 + 3.1416i 0.1680 + 3.1416i Columns 15 through 160.0497 + 3.1416i -0.0771 + 3.1416i Columns 17 through 18-0.2124 + 3.1416i -0.3566 + 3.1416i Columns 19 through 20-0.5104 + 3.1416i -0.6752 + 3.1416iColumns 21 through 22-0.8536 + 3.1416i -1.0497 + 3.1416i Columns 23 through 24-1.2701 + 3.1416i -1.5271 + 3.1416i Columns 25 through 26-1.8436 + 3.1416i -2.2727 + 3.1416i Columns 27 through 28-2.9837 + 3.1416i -37.0245 Columns 29 through 30-3.0017 -2.3085 Columns 31 through 32-1.8971 -1.5978 Columns 33 through 34-1.3575 -1.1531 Columns 35 through 36-0.9723 -0.8083 Columns 37 through 38-0.6567 -0.5151 Columns 39 through 40-0.3819 -0.2561 Columns 41 through 42-0.1374 -0.0255Columns 43 through 440.0792 0.1766 Columns 45 through 460.2663 0.3478 Columns 47 through 480.4206 0.4841 Columns 49 through 500.5379 0.5815 Columns 51 through 520.6145 0.6366 Columns 53 through 540.6474 0.6470 Columns 55 through 560.6351 0.6119 Columns 57 through 580.5777 0.5327 Columns 59 through 600.4774 0.4126 Column 610.3388(4)2242011122123t tz t tt t t⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t=0:0.5:2.5>> t=0:0.5:2.5; >>z4=t.^2.*(t>=0&t<1)+(t.^2-1).*(t>=1&t<2)+(t.^2-2*t+1).*(t>=2&t<3)z4 =Columns 1 through 40 0.2500 0 1.2500Columns 5 through 61.00002.25002. 已知:1234413134787,2033657327A B --⎡⎤⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦求下列表达式的值:(1) A+6*B 和A-B+I (其中I 为单位矩阵)>> A=[12 34 -4;34 7 87;3 65 7];>> B=[1 3 -1;2 0 3;3 -2 7]; >> I=ones(3);>> A+6*Bans =18 52 -1046 7 10521 53 49 >> A-B+Ians =12 32 -233 8 851 68 1(2) A*B和A.*B>> A*Bans =68 44 62309 -72 596154 -5 241>> A.*Bans =12 102 468 0 2619 -130 49(3) A^3和A.^3>> A^3ans =37226 233824 48604247370 149188 60076678688 454142 118820 >> A.^3ans =1728 39304 -6439304 343 65850327 274625 343(4) A/B及B\A>> A/Bans =16.4000 -13.6000 7.600035.8000 -76.2000 50.200067.0000 -134.0000 68.0000>> B\Aans =109.4000 -131.2000 322.8000-53.0000 85.0000 -171.0000-61.6000 89.8000 -186.2000(5) [A,B]和[A([1,3],:);B^2]>> [A,B]ans =12 34 -4 1 3 -134 7 87 20 3 3 65 7 3-2 7>> [A([1,3],:);B^2]ans =12 34 -43 65 74 5 111 0 1920 -5 403. 设有矩阵A 和B1234530166789101769,111213141502341617181920970212223242541311A B ⎡⎤⎡⎤⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥==-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦(1) 求它们的乘积C 。
matlab数学运算符
matlab数学运算符一、加法运算符(+)加法运算符是Matlab中最基本的数学运算符之一,用于实现数值的相加操作。
在Matlab中,可以使用加法运算符计算两个或多个数值的和。
例如,使用加法运算符可以计算2和3的和,即2+3=5。
二、减法运算符(-)减法运算符用于实现数值的相减操作。
在Matlab中,可以使用减法运算符计算两个数值的差。
例如,使用减法运算符可以计算5和3的差,即5-3=2。
三、乘法运算符(*)乘法运算符用于实现数值的相乘操作。
在Matlab中,可以使用乘法运算符计算两个或多个数值的乘积。
例如,使用乘法运算符可以计算2和3的乘积,即2*3=6。
四、除法运算符(/)除法运算符用于实现数值的相除操作。
在Matlab中,可以使用除法运算符计算两个数值的商。
例如,使用除法运算符可以计算6和2的商,即6/2=3。
五、取模运算符(mod)取模运算符用于计算两个数值相除后的余数。
在Matlab中,可以使用取模运算符计算两个数值相除的余数。
例如,使用取模运算符可以计算7除以3的余数,即7 mod 3=1。
六、指数运算符(^)指数运算符用于实现数值的乘方操作。
在Matlab中,可以使用指数运算符计算一个数的指定次幂。
例如,使用指数运算符可以计算2的3次幂,即2^3=8。
七、开方运算符(sqrt)开方运算符用于计算一个数的平方根。
在Matlab中,可以使用开方运算符计算一个数的平方根。
例如,使用开方运算符可以计算16的平方根,即sqrt(16)=4。
八、绝对值运算符(abs)绝对值运算符用于计算一个数的绝对值。
在Matlab中,可以使用绝对值运算符计算一个数的绝对值。
例如,使用绝对值运算符可以计算-5的绝对值,即abs(-5)=5。
九、取整运算符(floor)取整运算符用于将一个数向下取整为最接近的整数。
在Matlab中,可以使用取整运算符将一个数向下取整。
例如,使用取整运算符可以将3.8向下取整为最接近的整数,即floor(3.8)=3。
Matlab基本运算
2.1 变量和数据操作2.1.1 变量与赋值1.变量命名在MA TLA B 6.5中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。
在MA TLA B中,变量名区分字母的大小写。
2.赋值语句(1) 变量=表达式(2) 表达式其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。
2.1.2 预定义变量在MA TLA B工作空间中,还驻留几个由系统本身定义的变量。
例如,用pi表示圆周率π的近似值,用i,j表示虚数单位。
预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。
2.1.3 内存变量的管理1.内存变量的删除与修改MATLAB工作空间窗口专门用于内存变量的管理。
在工作空间窗口中可以显示所有内存变量的属性。
当选中某些变量后,再单击Delete 按钮,就能删除这些变量。
当选中某些变量后,再单击Ope n按钮,将进入变量编辑器。
通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素。
clear命令用于删除M A TLA B工作空间中的变量。
w ho和wh os这两个命令用于显示在MAT LAB工作空间中已经驻留的变量名清单。
who 命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。
2.内存变量文件利用MA T文件可以把当前MA TL AB工作空间中的一些有用变量长久地保留下来,扩展名是.mat。
MA T文件的生成和装入由save和load 命令来完成。
常用格式为:save 文件名[变量名表] [-append][-ascii]load 文件名[变量名表] [-ascii]其中,文件名可以带路径,但不需带扩展名.mat,命令隐含一定对.mat文件进行操作。
MATLAB_数值计算
b31 b32 b33
对于编程语言,矩阵就是二维的数组
2.1 MATLAB的基本计算
数学计算分为数值计算与符号计算,前者 不允许出现未定义变量,后者允许。(Eg 2-1) 常用的基本数学函数表。 (Eg 2-2)
Eg 2-1
三角函数
函数
sin sinh asin cos acos
说明
正弦函数 双曲正弦函数 反正弦函数 余弦函数 反余弦函数
MATLAB数值计算
2.1 MATLAB的基本计算 2.2 MATLAB矩阵和数组 2.3 关系和逻辑运算 2.4 多项式 2.5 稀疏矩阵 2.6 数据分析函数 2.7 数值分析
概述
在M语言中最常用的数据类型表现手段和形
式就是变量和常量
M语言的基本处理单位是数值矩阵或者数值
Eg 2-14 低维数组合成高维数组
建立3阶魔方及帕斯卡数组
将A、B串联成三维数组
cat(1,A,B)=[A;B]
cat(2,A,B)=[A,B]
>> A=eye(4) A= 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 >> A(:,:,2)=eye(4)*10; >> A(:,:,3)=eye(4)*100 A(:,:,1) = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 A(:,:,2) = 10 0 0 0 0 10 0 0 0 0 10 0 0 0 0 10 A(:,:,3) = 100 0 0 0 0 100 0 0 0 0 100 0 0 0 0 100
复数运算函数
函数
abs
பைடு நூலகம்
说明
求复数的模,若参数为实数则求绝对值
第二讲 Matlab的基本计算
>>a3=mat2str( a,2 ) %一行字符
字符串的应用:作出函数图形,并标注最大值点。 字符串的应用:作出函数图形,并标注最大值点。
y = e 2t sin(3t ) 0 ≤ t ≤ 10
clear %清除内存变量 t = 0 : 0.01 : 10; %时间 t 从 0 到 10 每隔 0.01 均匀采样 y = exp( -2*t ) .* sin( 3*t ); %对应每一个 t 求 y 值 %求最大值 y_max 及其下标 i_max [ y_max, i_max ] = max( y ); %横坐标字符串 t_text = [ 't = ', num2str( t(i_max) ) ]; %纵坐标字符串 y_text = [ 'y = ', num2str( y_max ) ]; %三行字符来标识最大值点 max_text = char( 'Maxium', t_text, y_text ); %图名称字符串 Title = [ 'y = exp( -2*t ) .* sin( 3*t )' ]; %新建一个图形窗 figure %画一条黑色的水平线 plot( t,zeros( size(t) ), 'k' ) %保持图形不被清除 hold on %蓝色实线画曲线 y(t) plot( t, y, 'b' ) %大小为 20 的红圆点标记最大值点 plot( t(i_max), y_max, 'r.', 'MarkerSize', 20 ) %在最大值点附近显示注释字符 text( t(i_max)+0.3, y_max+0.05, max_text ) %显示图名、横坐标名、纵坐标名 title( Title ); %取消图形保持 xlabel( 't' ) ylabel( 'y' ) hold off
matlab基础matlab数值运算
04
数值运算进阶
线性方程组求解
直接法
使用高斯消元法、LU分解等直接求解线性方程组的方法。
迭代法
使用如雅可比迭代、高斯-赛德尔迭代等迭代方法求解线性方程 组。
预处理技术
通过预处理手段改进直接法或迭代法的收敛速度和稳定性。
数值积分与微分
数值积分
使用如梯形法、辛普森法等数值积分方法计算 函数的积分值。
频谱分析
通过快速傅里叶变换等数值方法对信号进行频谱分析,提 取信号的频率成分和特征,用于音频、雷达、通信等领域。
信号压缩
利用数值方法对信号进行压缩编码,减小存储和传输成本, 用于音频、视频、遥感等领域。
在图像处理中的应用
图像增强
通过数值运算对图像进 行增强处理,提高图像 的对比度、清晰度等, 用于医学影像、安防监 控等领域。
数值微分
通过差分法计算函数的导数值,如前向差分、 后向差分和中心差分。
自动微分
利用Matlab的符号计算功能,自动求取函数的导数。
插值与拟合
一维插值
使用如拉格朗日插值、牛顿插值等一维插值方法。
多维插值
使用如样条插值、克里金插值等多维插值方法。
曲线拟合
通过最小二乘法等手段对数据进行曲线拟合。
数值优化
流体动力学模拟
通过数值方法求解流体动力学方程,模拟流体流动、传热等现象, 用于航空航天、流体机械等领域。
电磁场模拟
利用数值方法求解电磁场方程,模拟电磁波的传播、散射等现象, 用于雷达、通信、电磁兼容等领域。
在信号处理中的应用
信号滤波
利用数值运算对信号进行滤波处理,去除噪声、增强信号 特征,用于语音、图像、通信等领域。
图像去噪
利用数值方法对图像进 行去噪处理,去除图像 中的噪声和干扰,用于 遥感影像、医学影像等 领域。
MATLAB编程及应用 李辉 PPT课件 第2章 MATLAB基本计算和基础知识
2.2.2 系统预定义变量
MATLAB系统提供了一些用户不能清除的特殊变量,
即系统预定义变量。
MATALB系统预定义变量及其含义
预定义变量名
含义
ans pi eps nan或NAN inf i或j
运算结果默认变量名 圆周率 浮点数的精度,也是系统运算时确定的极小值 非数,如0/0 无穷大,如1/0 虚数标志,i=j=sqrt(-1)
1.0000 + 2.0000i >> b=3+4*j b=
3.0000 + 4.0000i
2.3.2 逻辑类型
MATLAB本身并没有专门提供逻辑类型,而借用整型来描
述逻辑类型数据。MATLAB规定,逻辑数据真(true)为1、
逻辑数据假(false)为0。
>> 2<3 ans =
logical 1 >> 2>3 ans = logical 0
>> sin(pi/3) ans =
0.8660
➢ 复数的计算:MATLAB还具有超越计算器的功能, 它认识复数,能够进行复数的计算。
>> (2+3i)+(4+5i) ans =
6.0000 + 8.0000i
Байду номын сангаас
2.2 变量
变量是指在程序执行过程中其值可以变化的量。
变量
用户自定义变量 系统预定义变量
2.3 数据类型
MATLAB数据类型
数值类型 逻辑类型 字符串类型 单元类型 结构类型
2.3.1 数值类型
数值类型分类方法
根据数据存 储空间和方 式分类
根据数据结 构分类
matlab中的基本运算
matlab中的基本运算基本运算是MATLAB中最基础的操作之一,它涵盖了数值计算、数据处理和绘图等各个方面。
本文将详细介绍MATLAB中的基本运算,包括算术运算、矩阵运算、逻辑运算和位运算等。
一、算术运算算术运算是最基本的运算之一,MATLAB中支持的算术运算包括加法、减法、乘法和除法等。
例如,可以使用"+"符号进行两个数的加法运算,用"-"符号进行减法运算,用"*"符号进行乘法运算,用"/"符号进行除法运算。
此外,还可以使用"^"符号进行幂运算,使用"sqrt"函数进行开方运算。
二、矩阵运算MATLAB中的矩阵运算是其强大功能之一。
可以使用矩阵进行加法、减法、乘法和除法等运算。
例如,可以使用"+"符号进行矩阵的逐元素加法运算,用"-"符号进行逐元素减法运算,用"*"符号进行矩阵的乘法运算,用"./"符号进行矩阵的逐元素除法运算。
三、逻辑运算逻辑运算在MATLAB中广泛应用于判断条件和控制流程。
MATLAB 支持的逻辑运算有与、或、非和异或等。
例如,可以使用"&&"符号进行逻辑与运算,用"||"符号进行逻辑或运算,用"~"符号进行逻辑非运算,用"xor"函数进行逻辑异或运算。
四、位运算位运算是对二进制数进行逐位操作的运算。
MATLAB支持的位运算有与、或、非、异或、左移和右移等。
例如,可以使用"&"符号进行位与运算,用"|"符号进行位或运算,用"~"符号进行位非运算,用"xor"函数进行位异或运算,用"<<"符号进行左移运算,用">>"符号进行右移运算。
2 matlab的数值运算
下次运行matlab时即可用load指
令调用已生成的mat文件。
load —— load data —— load data a b ——
即可恢复保 存过的所有 变量
mat文件是标准的二进制文件,
还可以ASCII码形式保存。
三、矩阵运算
1. 矩阵加、减(+,-)运算
规则:
相加、减的两矩阵必须有相同的行和 列两矩阵对应元素相加减。 允许参与运算的两矩阵之一是标量。 标量与矩阵的所有元素分别进行加 减操作。
二、数据的保存与获取
把matlab工作空间中一些有用的数 据长久保存下来的方法是生成mat数 据文件。 save —— 将工作空间中所有的变 量存到matlab.mat文件中。 默认文件名
save data——将工作空间中所
有的变量存到data.mat文件中。
save data a b ——将工作空间 中a和b变量存到data.mat文件中。
3.conv,convs多项式乘运算
例:a(x)=x2+2x+3; b(x)=4x2+5x+6; c = (x2+2x+3)(4x2+5x+6) a=[1 2 3];b=[4 5 6]; c=conv(a,b)=conv([1 2 3],[4 5 6]) c = 4.00 13.00 28.00 27.00 18.00 p=poly2str(c,'x') p = 4 x^4 + 13 x^3 + 28 x^2 + 27 x + 18
直接修改 可用键找到所要修改的矩阵,用键 移动到要修改的矩阵元素上即可修改。 指令修改 可以用A(,)= 来修改。
MATLAB及基本运算
矩阵运算
矩阵加法
执行矩阵加法运算,要求两个矩阵的 维度必须相同。
矩阵减法
执行矩阵减法运算,要求两个矩阵的 维度必须相同。
矩阵乘法
通过使用"*"运算符执行矩阵乘法运 算,要求第一个矩阵的列数必须与第 二个矩阵的行数相等。
矩阵转置
通过使用"'"运算符执行矩阵转置运算, 将矩阵的行转换为列,将列转换为行。
图像增强
使用Matlab的图像处理工具箱进行图像的 对比度增强、直方图均衡化等增强操作。
图像变换
使用Matlab的图像处理工具箱进行图像的 缩放、旋转、剪切等几何变换。
图像分割和识别
使用Matlab的图像处理工具箱进行图像分 割、边缘检测、特征提取和识别等操作。
THANKS
感谢观看
数值分析
数值积分
使用Matlab的`integral`函数进行数值积 分。
最优化问题求解
使用Matlab的`fminbnd`函数求解无约束 最优化问题,使用`fmincon`函数求解约束
最优化问题。
微分方程求解
使用Matlab的`ode45`函数求解常微分方 程。
插值和拟合
使用Matlab的`polyfit`函数进行多项式插 值,使用`lsqcurvefit`函数进行非线性曲 线拟合。
03
02
1984年
Matlab 1.0版本发布,标志着 Matlab的诞生。
2000年代至今
Matlab不断更新迭代,功能日益强 大。
04
Matlab的主要特点
数值计算
Matlab以数值计算为核心,提 供了大量的数学函数库,方便
用户进行各种数值计算。
MATLAB入门教程)1.MATLAB的基本知识
1-1、基本运算与函数在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter 键即可。
例如:>> (5*2+1.3-0.8)*10/25ans =4.2000MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。
小提示:">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。
我们也可将上述运算式的结果设定给另一个变数x:x = (5*2+1.3-0.8)*10^2/25x = 42此时MATLAB会直接显示x的值。
由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。
小提示:MATLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variable declaration)。
MATLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的MATLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。
若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例:y = sin(10)*exp(-0.3*4^2);若要显示变数y的值,直接键入y即可:>>yy =-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)。
Matlab基本数据类型和运算
▪ 在MATLAB中使用不同旳函数能够允许不同类型旳数据和
字符串类型旳数据之间进行转换
▪ 在MATLAB中直接提供了相应旳函数对一样类型旳数据进
行数制旳转换
数字和字符之间旳转换函数
函数 num2str int2str mat2str str2double str2num sprinf sscanf
0
▪ 创建字符串时需要使用单引号将字符串旳内容涉及起来 ▪ 字符串一般以行向量形式存在,而且每一种字符占用两个字节旳内存
>> a='123' a= 123
>> class(a) ans = char
>> size(a) ans = 13
若需要在字符串内容中包括单引号,则在键入字符串内容 时,连续键入两个单引号即可。 >> a='It''s a cup' a= It's a cup
字节数
8 4 1 2 4 8 1 2 4 8
MATLAB和C语言在处理数据类型和变量时旳区别
在C语言中,任何变量在使用之前必须申明,然后赋值, 在申明变量时就指定了变量旳数据类型
在MATLAB中,任何数据变量都不需要预先申明, MATLAB将自动地将数据类型设置为双精度类型
class函数 能够用来获取变量或对象旳类型 能够用来创建顾客自定义旳数据类型
被转换旳字符串仅能包括数字、小数点、字符“e” (“E”)或者“d”(“D”)、数字旳正号或者负号、 复数旳虚部字符“i”或者“j”
使用时要注意空格
>> A=str2num('1+2i') A= 1.0000 + 2.0000i
matlab的数值运算
matlab的数值运算当使用MATLAB 进行数值运算时,可以使用各种内置函数和运算符进行计算。
下面是一些常见的数值运算操作的详细说明:基本数学运算:加法:使用"+" 运算符进行两个数的相加。
例如,计算2 和3 的和:2 + 3。
减法:使用"-" 运算符进行两个数的相减。
例如,计算5 减去2 的结果:5 - 2。
乘法:使用"*" 运算符进行两个数的相乘。
例如,计算4 乘以3 的结果:4 * 3。
除法:使用"/" 运算符进行两个数的相除。
例如,计算10 除以2 的结果:10 / 2。
取余数:使用"mod" 函数或"%" 运算符计算两个数的余数。
例如,计算11 除以3 的余数:mod(11, 3) 或11 % 3。
幂运算:使用"^" 运算符进行幂运算。
例如,计算2 的3 次幂:2^3。
数学函数:MATLAB 提供了许多内置的数学函数,可以进行各种数值计算和分析操作。
这些函数包括但不限于:abs(x):返回x 的绝对值。
sin(x):返回x 的正弦值。
cos(x):返回x 的余弦值。
exp(x):返回e 的x 次幂,其中e 是自然对数的底数。
log(x):返回x 的自然对数。
sqrt(x):返回x 的平方根。
round(x):返回x 的四舍五入值。
floor(x):返回不大于x 的最大整数。
ceil(x):返回不小于x 的最小整数。
max(x, y):返回x 和y 中的较大值。
min(x, y):返回x 和y 中的较小值。
数组运算:MATLAB 中的数值计算通常涉及数组操作。
可以对向量、矩阵和多维数组执行各种运算,例如:矩阵相加:使用"+" 运算符对两个相同大小的矩阵进行元素级别的相加。
矩阵相乘:使用"" 运算符对两个矩阵进行乘法运算。
MATLAB入门基础
MATLAB入门教程1.MATLAB的基本知识1-1、基本运算与函数在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可。
例如:>> (5*2+1.3-0.8)*10/25ans =4.2000MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。
小提示:">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。
我们也可将上述运算式的结果设定给另一个变数x:x = (5*2+1.3-0.8)*10^2/25x = 42此时MATLAB会直接显示x的值。
由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。
小提示:MATLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variable declaration)。
MATLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的MATLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。
若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例:y = sin(10)*exp(-0.3*4^2);若要显示变数y的值,直接键入y即可:>>yy =-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)。
2、MATLAB的数学运算基础
例子: 计算表达式的值,并显示计算结果。
在MATLAB命令窗口输入命令: x=1+2i; y=3-sqrt(17); z=(cos(abs(x+y))-sin(78*pi/180))/(x+abs(y)) 输出结果是:
z= -0.3488 + 0.3286i
六、MATLAB的数值显示格式 的数值显示格式
• 和其他的程序设计语言不同,MATLAB能 自动根据赋值和操作来识别变量类型。即 变量使用之前,不需要指定变量的数据类 型,也不必事先声明变量。
MATLAB中变量的作用域一般默认为局 部变量,仅在当前调用的M文件中有效。如 果要定义全局变量,则必须用global来声明。 一般情况下,为了和局部变量有所区别, 常将全局变量用大写字母表示,但这并不 是必需的,只是人为的一种约定而已。
• • • •
>> clear xy yx %删除变量xy及yx >> whos >> xy %这时变量xy已经不存在了 ??? Undefined function or variable 'xy'.
其它
• 保存工作空间
命令格式: >>save filename variables
• 将变量列表variables所列出的变量保存到磁盘文 件filename中 • Variables所表示的变量列表中,不能用逗ariables时,表示将当前工作空间中所有 变量都保持到磁盘文件中。 • 缺省的磁盘文件扩展名为“.mat”,可以使用“-” 定义不同的存储格式(ASCII、V4等)
• 5.2、表达式的规则
MATLAB的表达规则与一般手写算式基 本相同。
• a) 表达式由变量名、运算符和函数名组成。 • b) 表达式按优先级自左向右运算,括号可改变优 先级顺序。 • c)优先级顺序由高到底为:指数运算、乘除运算、 加减运算。 • d)表达式中赋值符“=”和运算符两侧允许有空格。
第二章 Matlab的基本运算-yxw
2.2 矩阵和数组的算术运算
• 空数组(empty array):没有元素的数组; • 标量(scalar):是指1×1的矩阵,即为只含一
个数的矩阵; • 向量(vector):是指1×n或n×1的矩阵,即只
有一行或者一列的矩阵; • 矩阵(matrix):是一个矩形的m×n数组,即二
4字节 8字节
-3.40282×1038 ~ +3.40282×1038
-1.79769×10308 ~ +1.79769×10308
类型转换 函数 single()
double()
2.1.3 复数
• MATLAB用特殊变量“i”或“j”表示虚数的 单位。
• 复数的产生可以有几种方式:
• z=a+b*i或z=a+b*j • z=a+bi或z=a+bj(当b为常数时)
a(11)
• 中元素通过n个下标来引用:
图 2.4 矩阵的元素
• a(d1,d2,d3….)
例如:一个m×n的a矩阵的第i行第j列的元素表 示为a(i,j)。
• (2)单下标方式
• 数组元素用单下标引用,就是先把数组的所有 列按先左后右的次序连接成“一维长列”,然 后对元素位置进行编号。
• 以m×n的矩阵a为例,元素a(i,j)对应的单下标 = (j-1)×m+i。
• A. 10
B. 11
C.
9
D. 12
答案: B
• 3. 矩阵
• 矩阵是m行n列(m×n)的二维数组, 需要使用“[ ]”、“,”、“;”、空格等符号 创建。
• 最简单的方法是采用矩阵构造符“[]”。 构造1n矩阵(行向量)时,可以将各 元素依次放入矩阵构造符[]内,并且以 空格或者“,”分隔;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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<topic>。
所以即使身旁没有使用手册,也可以使用help 指令查询不熟悉的指令或是题材之用法,例如help sqrt2. 是利用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/25x =42变量x的值可以在下个语句中调用:y= 2*x+1y =85变量命名规则:1.变量名的大小写是敏感。
2.变量的第一个字符必须为英文字母,而且不能超过31个字符。
3.变量名可以包含下连字符、数字,但不能为空格符、标点。
系统预定义的变量(而键入clear则是去除所有定义过的变量名称。
表达式MATLAB书写表达式的规则与“手写算式”差不多相同,但要求所有表达式都是以纯文本形式输入。
如果一个指令过长可以在结尾加上...(代表此行指令与下一行连续),例如:>> 1*2+3*4+5*6+7*8+9*10+11*12+...13*14+15*16ans =744若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例:y = 1034*22+3^5;若要显示变数y的值,直接键入y即可:>>yy =22991MATLAB会忽略所有在百分比符号(%)之後的文字,因此百分比之後的文字均可视为程式的注解(Comments)。
例:计算圆面积Area = ,半径r = 2,则可键入>> r=2;% 圆半径r = 2,>> area=pi*r^2; % 计算圆面积area>> area =12.5664MATLAB提供基本的算术运算有:加 (+)、减 (-)、乘 (*)、除 (/)、幂次方 (^),范例为:5+3, 5-3, 5*3, 5/3, 5^3MATLAB常用数学函数●三角函数和双曲函数●指数函数●复数函数●圆整函数和求余函数●矩阵变换函数其他函数例:>>y = sin(10)*exp(-0.3*4^2) y =-0.0045【例】复数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【例】复数矩阵的生成及运算A=[1,3;2,4]-[5,8;6,9]*iB=[1+5i,2+6i;3+8*i,4+9*i] C=A*B A =1.0000 - 5.0000i 3.0000 - 8.0000i2.0000 - 6.0000i 4.0000 - 9.0000i B =1.0000 + 5.0000i2.0000 + 6.0000i3.0000 + 8.0000i4.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)若用户想计算51)3.0sin(21+=πy 的值,那末用户应依次键入以下字符y1=2*sin(0.3*pi)/(1+sqrt(5))(2)按【Enter 】键,该指令便被执行,并给出以下结果 y1 =0.5000若又想计算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.3633注:设置精度值。
t = 2.8957e-007digits(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 67 8 9>>a=[1,4,6,8,10] %一维矩阵>>a(3) % a的第三个元素ans =6»x =[1 2 3 4 5 6 7 84 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 =6x(1:5) % x的第前五个元素ans =1 42 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 84 100 6 7 8 9 10 11» x(3)=[] %删除第三个元素(不是二维数组)x =Columns 1 through 121 4 100 3 6 4 7 5 8 6 9 7Columns 13 through 1510 8 11» x(16)=1 %加入第十六个元素x =Columns 1 through 121 4 100 3 6 4 7 5 8 6 9 7Columns 13 through 1610 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 000» ones(3,3) %全为1的矩阵ans =1 1 11 1 11 1 1» rand(2,4);%随机矩阵»a=1:7, b=1:0.2:5; %更直接的方式»c=[b a];%可利用先前建立的阵列 a 及阵列 b ,组成新阵列以下将阵列的运算符号及其意义列出,除了加减符号外其余的阵列运算符号均须多加. 符号。