文档库 最新最全的文档下载
当前位置:文档库 › 第02章_MATLAB语言基础

第02章_MATLAB语言基础

2.1 2.2 2.3 2.4 2.5
基本概念 向量运算 矩阵运算 数组运算 字符串运算
2014年3月
1

本章要求:
了解MATLAB的数据类型,理解向 量、矩阵、数组、函数和表达式等基 本概念,掌握向量、矩阵和数组的基 本运算法则和运算函数的使用。
2014年3月
2

uint8
? 1. MATLAB数据类型
整 型
无符号
uint16 uint32 uint64 int8 int16
有符号 数值型 int32 int64 单精度 基本型 浮点型 双精度 字符串型
数据类型 构造型
数组型 细胞型 结构型 类类型 符号对象 图 2.1 MATLAB 数据类型
2014年3月
3

2. 常量与变量
特殊常量表
Windows中为2.2204e-16
Windows中为2.2251e-308 Windows中为1.7977e+308
2014年3月 4

2. 常量与变量
?Matlab用多少位来表示浮点数:digits,vpa ?最大双精度正浮点数和最小双精度正浮点数:realmax和realmin >> realmax >> realmin ?最大单精度正浮点数与最小单精度正浮点数 >> realmax('single') >> realmin('single') ?最大整数与最小整数INTMAX(CLASSNAME) CLASSNAME包含'int8', 'uint8', 'int16','uint16', 'int32', 'uint32', 'int64' and 'uint64'. >>intmax(‘int64’) 结果:9223372036854775807(19位)
2014年3月 5

2. 常量与变量
?Matlab显示时保留的小数位数 ? >>a=0.123456789 ? >>b=roundn(a,-7) ? >>b=roundn(a,-12) ? 显示:默认短格式:4位,存储16位,显示15位 ? 验证:
a=1.1234567890123456789012345678901234567890 a = 1.1235 >> b=roundn(a,-15);b=roundn(a,-16);b=roundn(a,-17) 比较显示的结果
2014年3月
6

2. 常量与变量 Matlab数据的圆整。 四个函数:floor、ceil、round、fix A = [-2.0, -1.9, -1.55, -1.45, -1.1, 1.0, 1.1, 1.45, 1.55, 1.9, 2.0] floor:圆整成最近的整数,向-∞方向圆整 floor(A)=[-2, -2, -2, -2, -2, 1, 1, 1, 1, 1, 2] ceil:圆整成最近的整数,向+∞方向圆整 ceil(A)=[-2,-1,-1,-1,-1,1,2,2,2,2,2] round:圆整成最近的整数 round(A)=[-2,-2,-2,-1,-1,1,1,1,2,2,2] fix:圆整成最近的整数,向0方向圆整 fix(A)=[-2,-1,-1,-1,-1,1,1,1,1,1,2] roundn(x, n)对小数点左/右第n位进行四舍五入,注意n的正负号,正: 小数点左,负:小数点右
2014年3月 7

变量命名遵守如下规则:
? 变量名必须以字母开头,且只能由字母、数字或者 下划线三类符号组成,不能含有空格和标点符号 (如( ) ,。% ’)等。 ? 变量名区分字母的大小写。例如,“a”和“A”是不 同的变量。 ? 变量名不能超过63个字符,第63个字符后的字符被 忽略,对于MATLAB6.5版以前的变量名不能超过 31个字符。 ? 关键字(如if、while等)不能作为变量名。 ? 最好不要用表2.1中的特殊常量符号作变量名。 常见的错误命名如f(x),y',y''等。
2014年3月 8

2.1 基本概念
3.标量、向量、矩阵与数组 各自的特点及相互间的关系 : (1)一维数组的数学原型是向量 ,二维数组的数学原型 是矩阵 。在MATLAB中,数组的用法与一般高级语 言不同,它不借助于循环,而是直接采用运算符,它 有自己独立的运算符和运算法则 。
(2) MATLAB将矩阵引入作为基本运算量。 (3)向量是一个数学量,它可视为矩阵的特例。 (4)标量的提法也是一个数学概念 ,可把它当成1×1 阶的矩阵 。 (5)二维数组和矩阵其实是数据结构形式相同的两种运 算量。二维数组和矩阵的表示、建立、存储根本没有 区别,区别只在它们的运算符和运算法则不同。 (6)数组的维和向量的维是两个完全不同的概念
2014年3月 9

2.1 基本概念
4.字符串 字符串用单引号来标示。 如:S=‘I HAVE A DREAM.’ 字符串实际可视为一个字符数组 。
2014年3月
10

? MATLAB运算符可分为三大类: 算术运算符:
矩阵算术运算符(代数学规定的算法) 数组算术运算符(Matlab定义的算法)
关系运算符 逻辑运算符
2014年3月
11

见共轭转置举例.txt
2014年3月 12

2014年3月
13

A=3 B=magic(3) D=ones(3) C=A*B;C=A.*B E=D/B;E=D./B
2014年3月
14

逻辑假:0;逻辑真:非0
F=D2014年3月 15

G=D&B
2014年3月 16

&与&&的区别: A&B (1)首先判断A的逻辑值,然后判断B的值,然后进 行逻辑与的计算。 (2)A和B可以为矩阵(e.g. A=[1 0],B=[0 0]) A&&B (1)首先判断A的逻辑值,如果A的值为假,就可以 判断整个表达式的值为假,就不需要再判断B的值。 (2)A和B不能是矩阵,只能是标量。 “|”与“||”同理。
2014年3月
17

2014年3月
18

命令 : 函数 :
在MATLAB中,命令与函数都组织在函数库里,有一个 专门的函数库general就是用来存放通用命令的。 函数最一般的引用格式是: 函数名(参数1,参数2,…)
表达式 :
例如:A+B&C-sin(A*pi)
语句 :
赋值语句 :变量名=表达式
2014年3月
19

? 1.向量的生成(三种方法): 第一种:直接输入法 格式是:向量名=[a1,a2,a3,…] 第二种:冒号表达式法 格式是:向量名= a1:step:an(注意顺序; an可 能被跳过,最后一个值小于an。例: A=0:0.3:5) 第三种:函数法 格式:A=linspace(a1,an ,n) 线性等分,精确 等分,最后一个值等于an, A=linspace(0,5,17)
2014年3月 20

Matlab语言基础

一、Matlab的变量与常量 Matlab中变量和常量存储都是相应的数据。 数据类型:基本类型、构造类型、符号对象 基本类型:数字型、字符串型 数字型:整型、浮点型 整形:无符号、有符号(int8、int16、int32、int64 1位、2位、4位、8位) 浮点型:单精度(32位)、双精度(64位) 基本类型:数组类型(常见)、细胞类型、结构类型、类类型 符号对象(比较少见) 变量:在运算过程中其数值可以改变的量; 常量:在运算过程中其数值不改变的量。 变量命名规则: 变数名称是由一个字母开头,其后可以有任意数量的字母、数字或下划线。在变量命名时尽量使用小写字母,名字要有实在的意义,不要和系统保留的关键字(常量)和函数名相同的名字,容易出错。 MATLAB是区分大小写的,变量名可以是任意长度。 Matlab语言是一种弱类型语言,C语言是强类型语言,变量在复制之前要对它的类型进行严格的申明,不同就会出错,而matlab不需要事先申明。 变量初始化: 1、采用赋值语句初始化变量; 2、用input函数从键盘输入初始化变量,如下:

3、matlab已经定义好了的一些常量: I、j虚数;Inf无穷大;NaN不定式;pi圆周率;ans特殊的变量。 二、matlab的基本数据结构 标量、向量、数组、矩阵的概念:标量、向量、数组本质上是特殊的矩阵形式;matlab 常用的是二维矩阵;标量1*1的矩阵;向量可以看成是1行或者1列的矩阵;向量是数学中的说法,数组是matlab语言中的说法,但向量和数组在这里指的是同一种数据结构,可以互用。 手动生成矩阵: 行矩阵:a = [1 2 3] 列矩阵:b = [1 2 3]’或 b = [1;2;3] 2*2矩阵:c = [1 2;3 4] 使用内置函数生成矩阵:常用的有o nes,eye,zeros,size,length.

(完整版)matlab基本语句

第2章M ATLAB程序设计 MATLAB语言为解释型程序设计语言。在程序中可以出现顺序、选择、循环三种基本控制结构,也可以出现对M-文件的调用(相当于对外部过程的调用)。 由于 MATLAB开始是用FORTRAN语言编写、后来用 C语言重写的,故其既有FORTRAN的特征,又在许多语言规则方面与C语言相同。 2.1 顺序结构语句 在顺序结构语句中,包括表达式语句、赋值语句、输入输出语句、空语句等。

2.1.1 表达式语句 格式: 表达式,%显示表达式值 表达式;%不显示表达式值 表达式%显示表达式值 如: x + y, sin(x); –5 最后的表达式值暂保存在变量ans中。 2.1.2 赋值语句 格式: v =表达式,%结果送v并显示v v =表达式;%结果送v不显示v v =表达式%结果送v并显示v 2.1.3 空语句 格式: , ; 2.1.4 输入语句

1、input语句(实际上是函数) 格式1: input(提示字符串) 功能: 显示提示字符串,可输入数字、字符串(两端用单引号括起)、或表达式 格式2: input(提示字符串,'s') 功能: 显示提示字符串,并把输入视为字符串 2、yesinput语句 格式: yesinput(提示字符串,缺省值,值范围) 功能: 显示提示字符串和缺省值,若只打入回车则以缺省值作为输入值,若输入的值不在指定范围内则认为输入无效,B并等待用户重新输入。 如: t=yesinput('指定线的颜色',… 'red','red|blue|green') 运行结果如下: 指定线的颜色(red):yellow %不在值内

matlab基本语句

matlab 基本语句 1、循环语句for for i=s1:s3:s2 循环语句组 end 解释:首先给i赋值s1;然后,判断i就是否介于s1与s2之间;如果就是,则执行循环语句组,i=i+s3(否则,退出循环、);执行完毕后,继续下一次循环。 例:求1到100的与,可以编程如下: sum=0 for i=1:1:100 sum=sum+i end 这个程序也可以用while语句编程。 注:for循环可以通过break语句结束整个for循环、 2、循环语句while 例:sum=0;i=1; while(i<=100) sum=sum+i;i=i+1; end 3、if语句 if(条件) 语句 end if(条件) 语句 else 语句 end if(条件) 语句 elseif 语句 end 4、关系表达式: =,>,<,>=,<=,==(精确等于)

5、逻辑表达式:|(或),&(且) 6、[n,m]=size(A)(A为矩阵) 这样可以得到矩阵A的行与列数 n=length(A),可以得到向量A的分量个数;如果就是矩阵,则得到矩阵A的行与列数这两个数字中的最大值。 7、!后面接Dos命令可以调用运行一个dos程序。 8、常见函数: poly():为求矩阵的特征多项式的函数,得到的为特征多项式的各个系数。如 a=[1,0,0;0,2,0;0,0,3],则poly(a)=1 -6 11 -6。相当于poly(a)=1入^3+(-6)入^2+11入+(-6)。 compan():可以求矩阵的伴随矩阵、 sin()等三角函数。 MATLAB在数学建模中的应用(3) 一、程序设计概述 MATLAB所提供的程序设计语言就是一种被称为第四代编程语言的高级程序设计语言,其程序简洁,可读性很强,容易调试。同时,MATLAB的编程效率比C/C++语言要高得多。 MATLAB编程环境有很多。常用的有: 1、命令窗口 2、word窗口 3、M-文件编辑器,这就是最好的编程环境。 M-文件的扩展名为“、m”。M-文件的格式分为两种: ①l M-脚本文件,也可称为“命令文件”。 ②M-函数文件。这就是matlab程序设计的主流。l 保存后的文件可以随时调用。 二、MATLAB程序结构 按照现代程序设计的观点,任何算法功能都可以通过三种基本程序结构来实现,这三种结构就是:顺序结构、选择结构与循环结构。其中顺序结构就是最基本的结构,它依照语句的自然顺序逐条地执行程序的各条语句。如果要根据输入数据的实际情况进行逻辑判断,对不同的结果进行不同的处理,可以使用选择结构。如果需要反复执行某些程序段落,可以使用循环结构。 1 顺序结构 顺序结构就是由两个程序模块串接构成。一个程序模块就是完成一项独立功能的逻辑单元,它可以就是一段程序、一个函数,或者就是一条语句。 瞧图可知,在顺序结构中,这两个程序模块就是顺序执行的,即先执行<程序模块1>,然后执行<程序模块2>。 实现顺序结构的方法非常简单,只需将程序语句顺序排列即可。 2 选择结构 在MATLAB中,选择结构可由两种语句来实现。

matlab基本语句(可编辑修改word版)

第2章MATLAB 程序设计 MATLAB 语言为解释型程序设计语言。在程序中可以出现顺序、选择、循环三种基本控制结构,也可以出现对M-文件的调用(相当于对外部过程的调用)。 由于 MATLAB 开始是用 FORTRAN 语言编写、后来用C 语言重写的,故其既有 FORTRAN 的特征,又在许多语言规则方面与 C 语言相同。 2.1顺序结构语句 在顺序结构语句中,包括表达式语句、赋值语句、输入输出语句、空语句等。

2.1.1表达式语句 格式: 表达式,%显示表达式值 表达式;%不显示表达式值 表达式%显示表达式值 如: x+y, s i n(x); –5 最后的表达式值暂保存在变量 ans 中。 2.1.2赋值语句 格式: v=表达式,%结果送 v 并显示 v v=表达式;%结果送 v 不显示 v v=表达式%结果送 v 并显示 v 2.1.3空语句 格式: , ; 2.1.4输入语句 1、i n p u t语句(实际上是函数) 格式 1: i n p u t(提示字符串)

功能: 显示提示字符串,可输入数字、字符串(两端用单引号括起)、或表达式 格式 2:i n p u t(提示字 符串,'s')功能: 显示提示字符串,并把输入视为字符串 2、y e s i n p u t语句 格式: y e s i n p u t(提示字符串,缺省值,值范围) 功能: 显示提示字符串和缺省值,若只打入回车则以缺省值作为输入值,若输入的值不在指定范围内则认为输入无效,B 并等待用户重新输入。 如: t=y e s i n p u t('指定线的颜色',… 'r e d','r e d|b l u e|g r ee n') 运行结果如下: 指定线的颜色(red):yellow %不在值内 指定线的颜色(red):blue %重输 t = b l u e x=y e s i n p u t('输入元素个数',10,[1,20])

Matlab语言基本知识.doc

************************ MATLAB语言基本知识************************ 物理电气信息学院自控系 宋娟 2012年8月

Matlab语言基本知识(一) 1.掌握MATLAB常用命令 >> who %列出工作空间中变量 Your variables are: a ans b c >> whos %列出工作空间中变量,同时包括变量详细信息 Name Size Bytes Class a 1x1 8 double array ans 1x1 8 double array b 1x1 8 double array c 1x3 24 double array Grand total is 6 elements using 48 bytes >>save test %将工作空间中变量存储到test.mat文件中 >>load test %从test.mat文件中读取变量到工作空间中 >>clc %清除命令窗口中内容 >>clear %清除工作空间中变量 >>format %命令窗口数据显示格式命令 >>help %函数名(回车)%对所选函数的功能、调用格式及相关函数给出说明>>which %显示指定的外部函数(M文件)所在的目录 如:which abc 则系统会显示文件abc所在的目录

>>what %列出指定目录下的M文件、MAT文件、MEX文件和Class >>lookfor %查找具有某种功能的函数但却不知道该函数的准确名称如:lookfor Lyapunov 可列出与Lyapunov有关的所有函数。 2.MATLAB变量与运算符 变量命名规则如下: (1)变量名可以由英语字母、数字和下划线组成 (2)变量名应以英文字母开头 (3)长度不大于31个 (4)区分大小写 MATLAB中设置了一些特殊的变量与常量,列于下表。 MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符

MATLAB 语言的基本使用方法

实验一 MATLAB 语言的基本使用方法 1. 实验目的 1) 了解MATLAB 程序设计语言的基本特点,熟悉MATLAB 软件运行环境。 2) 掌握创建、保存、打开文件及数据的方法,掌握设置文件路径的方法。 3) 掌握变量、函数等有关概念,具备初步的将一般数学问题转化为对应计算机模型并进行处理的能力。 2. MATLAB 基础知识 2.1 MATLAB 程序设计语言简介 MATLAB ,Matrix Laboratory 的缩写,是由MathWorks 公司开发的一套用于科学工程计算的可视化高性能语言,具有强大的矩阵运算能力。 与大家常用的Fortran 和C 等高级语言相比,MATLAB 的语法规则更简单,更贴近人的思维方式,被称之为“草稿纸式的语言”。 MATLAB 软件主要由主包、仿真系统(simulink )和工具箱(toolbox )三大部分组成。 2.2. MATLAB 界面简介 下面我们主要对MATLAB 基本界面进行介绍。如图 1-1所示,命令窗口包含标题栏、菜单栏、工具栏、命令行区、状态栏、垂直和水平波动条等 区域。 标题栏菜单栏工具栏命令行区状态栏垂直和水平滚 动条 图 1-1 MATLAB 基本界面——命令窗口 1) 菜单栏 菜单栏中包括File 、Edit 、View 、Web 、Window 和Help 六个菜单项。这里着重介绍File 项。 File 项是数据输入/输出的接口, 包括10个子项, 这里重点介绍其中的5个子项: New: 新建文件项。 有四个选择: M File(.M ,文本格式的MATLAB 程序文件, 可以直接通过文件名的方式在MATLAB 环境下解释运行); Figure(图形);

Matlab语言基础编程教程

MATLAB入门教程 1.MATLAB的基本知识 1-1、基本运算与函数 在MA TLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter 键即可。例如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。 小提示:">>"是MA TLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。 我们也可将上述运算式的结果设定给另一个变数x: x = (5*2+1.3-0.8)*10^2/25 x = 42 此时MATLAB会直接显示x的值。由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。 小提示:MA TLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variable declaration)。MA TLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的MA TLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。 若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例: y = sin(10)*exp(-0.3*4^2); 若要显示变数y的值,直接键入y即可: >>y y =-0.0045 在上例中,sin是正弦函数,exp是指数函数,这些都是MA TLAB常用到的数学函数。 下表即为MATLAB常用的基本数学函数及三角函数: 小整理:MATLAB常用的基本数学函数

MATLAB语言入门仿真作业五

2012年MATLAB语言入门第五次仿真作业Array 1.对一个M=16QAM通信系统进行蒙特卡罗仿真,仿真误码率,并与理论曲线比较。% test1 % cm_sm41.m function [p]=cm_sm41(snr_in_dB) % snr_in_dB=-1:0.01:11; N=10000; d=1; Eav=10*d.^2; snr=10.^(snr_in_dB/10); sgma=sqrt(Eav./(8*snr)); M=16; for i=1:N temp=rand; dsource(i)=1+floor(M*temp); end; %mapping to the signal constellation follows mapping=[-3*d 3*d; -d 3*d; d 3*d; 3*d 3*d; -3*d d; -d d; d d; 3*d d; -3*d -d; -d -d; d -d; 3*d -d; -3*d -3*d; -d -3*d; d -3*d; 3*d -3*d]; for i=1:N qam_sig(i,:)=mapping(dsource(i),:); end; %received signal for i=1:N [n(1) n(2)]=gngauss(sgma); % n=[n(1) n(2)]; % n(1)=sgma*rand; % n(2)=sgma*rand;

r(i,:)=qam_sig(i,:)+n; end %detection and error probability calculation numoferr=0; for i=1:N for j=1:M metrics(j)=(r(i,1)-mapping(j,1))^2+(r(i,2)-mapping(j,2))^2; end [min_metric decis]=min(metrics); if (decis~=dsource(i)) numoferr=numoferr+1; end end p=numoferr/(N); %gngauss.m function[gsrv1 gsrv2]=gngauss(sgma) u=rand; z=sgma*(sqrt(2*log(1/(1-u)))); u=rand; gsrv1=z*cos(2*pi*u); gsrv2=z*sin(2*pi*u); %test1.m SNRindB1=0:2:15; SNRindB2=0:0.1:15; M=16; k=log2(M); for i=1:length(SNRindB1) smld_err_prb(i)=cm_sm41(SNRindB1(i));% simulated error rate echo off; end; echo on; for i=1:length(SNRindB2) SNR=exp(SNRindB2(i)*log(10)/10);%signal to noise ratio % theoretical symbol error rate theo_err_prb(i)=4*qfunc(sqrt(3*k*SNR/(M-1))); echo off; end; echo on; %Plotting commands follow semilogy(SNRindB1,smld_err_prb,'*'); hold semilogy(SNRindB2,theo_err_prb);

相关文档