当前位置:文档之家› 计算机仿真技术与应用简介

计算机仿真技术与应用简介


>> a=3*ones(4,5) a= 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 >> b=diag(a) b= 3 3 3 3
>> zeros(5,6) %生成5行6列的全0阵 ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
数值数组(Numeral Array)和数组运算 (Array Operations) 是 MATLAB 的核心内容。数组是 MATLAB 最重要的一 种内建数据类型,而数组运算则是定义在这种数据结构 上的方法。本章重点介绍数值数组,其次是与数组类似 其它结构体。 数组:是指由一组实数或复数排成的长方阵列(Array), 包括行向量、列向量和矩阵。 数组的运算: 无论对数组施加什么运算(加减乘除或函 数)总认定那种运算对被运算数组中的每个元素平等地 实施同样的操作。
例如对数组 作如下操作:
2.1一维数组
2. 一维数组的寻访
• 关系运算函数find的使用 例:生成矩阵 x=[-2 -1 0 1 2 0.5 -1 inf 1 0.5]
x1=find(x==0) %找出x中恒等于0的元素的索引
x2=find(x>0) x3=find(x) %找出x中大于0的元素的索引 %找出x中不等于0的元素的索引
x4=find(abs(x)>0.1&abs(x)<0.6) %找出x中绝对值介于 0.1和0.6之间的元素的索引
2.1一维数组
2. 一维数组的寻访
• 子数组的赋值
格式:x(index)=y 说明:x(index)所得到的数据长度与y的数据长度必须相同 index和子数组寻访中的index定义一样 y可以是单个数,也可以是一维数组,也可以是某一维数组的子数组 例 x(3)=0; x(1:4)=randn(1,4); x([1 4])=[2 2]; 例 y=randn(1,10); x(1:4)=y(2:5)
>> x(3) 取单个数组元素 ans = 1.7321 >> x([1 2 4]) 下标为由[ ]构成的数组 ans = 2.0000 1.0472 3.0000 >> x(2:end) 下标为由冒号生成法构成的数组 ans = 1.0472 1.7321 3.0000 >> x(4:-1:1) ans = 3.0000 1.7321 1.0472 2.0000 >>x(find(x>1.50)) ans = 2.0000 1.7321 3.0000
1 概述
MATLAB数据格式及显示方式
MATLAB 既可用传统的十进制数表达数值,也可以用科学计 数表达数值,用e代表10的指数形式,用i和j来代表虚数。

MATLAB内部数据格式只有一种,是IEEE浮点标准的双精度
二进制(64位)。

为了人机交互的友好性,数据输出显示格式有8种 。可用菜单
选项或format命令选择。
数值计算结果的显示格式
• format long e, pi • format long, pi
1 概述
变量及其赋值
在命令窗口可直接输入变量并赋值,无须声明其 类型和维数,MATLAB将自动处理。
变量
• 不需要事先对变量进行声明,也不需要指定变量 类型,会自动依据所赋予变量的值或对变量进行
【说明】 a、b分别是生成数组的第一个和最后一个元素,n是采样总 点数。 该指令与 x=a: (b-a)/(n-1) : b 相同。

d) 此外还可通过数组运算或数组生成函数,构建某些特殊 的数组。
【例】一维数组的冒号生成法和定数线性采样法。
>> x=(0:pi/10:pi) x= Columns 1 through 6 0 0.3142 0.6283 Columns 7 through 11 1.8850 2.1991 2.5133 >> y=linspace(0,pi,11) y= Columns 1 through 6 0 0.3142 0.6283 Columns 7 through 11 1.8850 2.1991 2.5133
则将显示:
x= 2.0000 1.0472 1.7321 3.0000 + 5.0000i
2 数值数组的生成和寻访
2.1 一维数组
1. 一维数组的创建
b)冒号生成法
变量名=a:inc:b %生成从a到b,间隔为inc的一维数组 说明:a :数组的第一个元素 inc :采样点之间的间隔即步长(数组元素间的间隔长度)inc 可以省 略。省略时,默认其取值为1,即认为inc=1,可以取正数或负数。但要 注意:inc取正时,要保证a<b;而inc 取负时,要保证a>b (b-a)是inc的整数倍,则所生成数组的最后一个元素等于b,否则小于b
▫ clock
• 序列日期数 7.349e+005
▫ 从一个固定日子开始到指定的日期经过了多少天, matlab中0000年的1月1日的序列日期为1,下午6 点位0.75.(输入now)
转换日期格式
• • • • • • • Datenum:把其他格式转换为序列日期数 Datestr把其他格式转换为日期串 Datevec把其他格式转为日期向量 >>T=datenum(’12/24/2012 12:22’) T= >>datevec(t) Ans=
• 预定义变量 P48
▫ clear
• 小结 P49
2 数值数组的生成和寻访
2.1 一维数组
1. 一维数组的创建 a) 逐个元素输入法 借助数组编辑器可以逐个输入数组元素(对于二维 数组同样适用),但也可在指令窗中直接输入。例如在 指令窗中输入(数组元素之间用‚ ‛ 或‚,‛隔开): x=[2 pi/3 sqrt(3) 3+5i]
• 与一维数组对比
2.2 二维数组
2.
二维数组的寻访和赋值
a) 全元素标识和赋值 这是一种最常用的标识方式,对于二维数组来说,‚全下标‛标识 由两个下标组成:行下标,列下标。如A(3,5)等。
b)
单下标标识和赋值 这是只用一个下标来指明元素在数组中的位置。对二维数组采用 ‚单下标‛标识,应先对数组的所有元素进行‚一维编号‛,即先 设想把二维数组的所有列按先左后右的次序,首尾相接排成‚一维 长列‛;然后自上往下对元素位置进行编号。
指令 diag eye
randn 产生正态分布随机数组 zeros 产生全0数组
magic 产生魔方数组(二维以下)
ones
产生全1数组
• diag 产生对角形数组 ,不适用于高维数组
A=diag(V) V为具有m个元素的向量 其功能是产生一个m×m对角数组 主对角线元素即为向量V的元素 A=diag(V,k), 其功能是产生一个n×n(n=m+k)对角数组 第k条对角线的元素即为向量V的元素 k>0 主对角线之上的第k条对角线 k<0 主对角线之下的第k条对角线
2.2 二维数组
1. 二维数组的创建
b) 利用M文件创建和保存数组 对于经常需要调用的且比较大的数组,可专门为该数组创建一个 M文件。利用文件编辑器输入该数组并保存,以后只要在MATLAB指令 窗中,运行该文件,文件中的数组就会自动生成于MATLAB内存中。 c) 标准数组生成函数 含 义 产生对角形数组(二维以下) 产生单位数组(二维以下) 指令 rand 含 义 产生均匀分布随机数组
2.2 二维数组
1.
二维数组的创建
a)
直接输入法 整个输入数组须以‚[ ]”为其首尾; 数组行与行之间用‚;‛或‚回车键‛隔离;>> A=[1 2 3;4 5 6;7 8 9] A= 数组元素用逗号或空格分离。 1 2 3 4 5 6 例如要输入二维数组 7 8 9 1 2 3 >> A=[1,2,3 A 4 5 6 4,5,6 7 8 9 7,8,9] 则在指令窗中的操作如右图所示。 A= 1 2 3 其中,第一个矩阵输入采用‚;‛分行, 4 5 6 第二个矩阵输入采用‚回车键‛分行。 7 8 9
>> d=eye(5) %产生(5*5)的单位阵
d= 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 %产生4行5列全3数组 3 3 3 3 %取a 阵对角元 >> c=diag(b) %生成对角元为数组b 对 角阵(与diag([3,3,3,3]) 效果相同) c= 3 0 0 0 0 3 0 0 0 0 3 0 0 0 0 3
计算机仿真技术与应用简介
王红勇 ChinaATM@ 13920819396
Matlab数值数组及运算
1 概述 2 数值数组的生成和寻访 3 数组运算和矩阵运算 4 非数和空数组 5 数组的关系运算和逻辑运算 6 字符串数组
1 概述
MATLAB长于数值计算,而所谓数值计算,就是指计算 的表达式、变量中不得包含未经定义的自由变量。
%冒号法生成一维数组
0.9425 1.2566 1.5708 2.8274 3.1416 % 定数 (0,) 线性采样法生成 (1×11)数组 0.9425 1.2566 1.5708 2.8274 3.1416
显然这两种方法生成的一维数组是完全相同的。
2.1一维数组
2. 一维数组的寻访
数组寻访的一般格式为X(index),下标index可以是单个正整数或 正整数数组。 x =[ 2.0000 1.0472 1.7321 3.0000 ]
>> a=zeros(2,5) a= 0 0 0 0 0 0 0 0 0 0
相关主题