当前位置:文档之家› Matlab语言基础

Matlab语言基础

Matlab语言基础
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.

利用冒号表达式生成矩阵:

冒号:用来生成向量,定义数组下标,数组的循环迭代。

生成航向量:

生成列相量:

引用矩阵或矩阵中的元素:

举证可以看成一个一位数组,按列从左至右,从上往下依次排列。

冒号当作下标

e(:,2) :代表全部行元素,2代表第2列

引用第3列2-4行:

指定生成某种矩阵

矩阵的行拼接列拼接:

Size函数:返回矩阵行列对应的维数;length函数返回行列维数最大的那个值

三、matlab中的空数组和子数组

子数组的概念

子数组的赋值与数组直接赋值的区别

end的用法

Linspace,logspace,reshape

预定义变量:date,clock,year,month,now,today(和日期处理有关)

空数组

子数组

Linspace函数

用法:linspace(x1,x2,N) (linspace(x1,x2)默认生成包括x1和x2的100个数)

功能:linspace是Matlab中的均分计算指令,用于产生x1,x2之间的N点行线性的矢量。其中x1、x2、N分别为起始值、终止值、元素个数。若默认N,默认点数为100。

注:linspace(5,100,20)和5:5:100的区别在于前者已知元素总个数而不知道步长,后者已知步长不知元素个数,这两者的效果是一样的。

logspace函数

用法:x=logspace(a, b, n)

功能:logspace(a, b, n)生成一个(1xn)数组,数据的第一个元素值为a,最后一个元素为b,n是总采样点数。需要注意的是,此时产生的数组元素在10^a 到10^b上并不是均匀分布的,而形成一个对数曲线。

reshape的用法

date,clock,year,month,now,today的用法

四、matlab中的算术运算符

标量运算

矩阵预算

数组运算

运算优先级

标量:亦称?无向量?。有些物理量,只具有数值大小,而没有方向,部分有正负之分。物理学中,标量(或作纯量)指在坐标变换下保持不变的物理量。用通俗的说法,标量是只有大小,没有方向的量。

+ - * / \ ^

矩阵:由 m × n 个数aij排成的m行n列的数表称为m行n列的矩阵,简称m × n矩阵。magic函数:生成魔方矩阵

矩阵运算:

A+B A-B A*B A/B A.*B A./B

五、matlab中常见的运算函数

三角、反三角函数,指数、对数函数,圆整函数、绝对值,sum, prod, max, min 复数取实部、虚部、取模

Cross, dot, compan, inv, det, rank, eig, trace (对矩阵进行运算)

圆整

ceil 朝着正无穷圆整

floor 朝着负无穷圆整

fix 朝着0圆整

round 四舍五入整

mod 取模函数

rem 除取余

mod 除取整

mean按列求平均值

prob接地

Sum(x,dim)dim=1按列 2按行求和

conv 可以做多项式乘法

比如,(X^6+X^4+7X+4)*(X^5+X^3+3X+1)用conv函数展开:

复数

六、matlab的字符串及其运算

ASCII码:American Standard Code for Information Interchange的缩写

字符串的数组本质

字符串的生成:单引号法,数组法

字符串的转换:abs, double, char, str2num, num2str, upper, lower

字符串:本质是一个字符数组。其他语言中也有。字符经过编码以数字的形式编在电脑里,这种编码形式就是ASCII码。

字符串的生成:单引号法,数组法。

字符串的转换:

abs 将字母转成数字。double 功能类似。

char 将字母转成字母。

str2num, num2str, upper, lower

这种方法比较迂回,matlab中有函数直接转换

七、字符串函数及二维字符串

Strcmp(S1,S2), findstr(S, S), strcat(S1, S2), disp(str)

Fprint(format, data)

二维字符串

Strvcat, str2mat

Strcmp(S1,S2) S1,S2两个函数相同则为1,不同则为0 Strcmp(S1,S2,n)比较前n个字符

findstr(S1, S) 将S1中所有的S以形式的形式返回

strcat(S1, S2) 将两个字符进行拼接;利用矩阵形式进行拼接也可以;当两个字符串长度不一样是不可以[S1, S2]这样拼接。

disp(str) 将字符串原样输出

二维字符串的生成:

维度不一的时候用空格补齐,这种方法比较麻烦。

Strvcat 字符串纵向拼接 str2mat与之类似,区别在于str2mat会将空字符生成空行,而前者会直接将其忽略。

八、绘图入门

其他语言绘图特别繁琐,而matlab绘图特别方便简洁。

plot,semilogx,semilogy,loglog,legend,title,grid,xlabel,ylable,hold plot:matlab 中最简单的绘图命令。

legend(‘在右上角对不同的曲线插入相应的图例’)

九、绘图属性的控制

plot,semilogx,semilogy,loglog,legend,title,grid,xlabel,ylable,hold 线型,颜色,线宽的控制

十、图形窗口菜单及其对数坐标Semilogx,semilogy,loglog

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);

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