当前位置:文档之家› 第2章-matlab数值计算功能

第2章-matlab数值计算功能

30
3. 乘方(^、.^)运算
① 矩阵乘方(^)运算 A^p
矩阵A必须是方阵,A和p不能同时为矩阵; 当p取整数时,该指令的运算结果可以做如下的理解:
当p>0时, A^p表示方阵A的直接自乘p次;
当p<0时, A^p表示方阵A的逆矩阵直接自乘p次; 当p=0时, A^p表示与方阵A同维的单位阵;
-4 -2 0 2 4 中所有绝对值大于3的元素 -3 -1 1 3 5
A=[-4,-2,0,2,4;-3,-1,1,3,5]; %创建矩阵A L=abs(A)>3 islogical(L) X=A(L)
L= 1 0 0 0 0 0 0 0 1 1
%建立矩阵L %判断L中是否有逻辑1 %指出A中绝对值大于3的元素
12
2.1.4 向量的生成
数组可以看成是行向量,即只有一行或一列的矩阵。前面介绍的所 有矩阵的建立和保存的方法,对向量同样适用 1.利用冒号“:”创建等差数列:
t=[初值:增量:终值]
其中 “增量”是可以省略的,省略时,默认的增量步长为1。增量也可 以是负值,但此时,初值应该大于终值。
例如:x=1:5; y=0:pi/4:2*pi; z=6:-1:0;
28
2.4 矩阵与数组运算
Matlab有两类运算指令:矩阵算术运算和数组算术运算。
矩阵运算是按照线性代数的运算法则定义的; 数组运算是按元素逐个执行的。
2.4.1 矩阵与数组的算术运算
1. 矩阵加、减(+,-)运算
相加、减的两矩阵必须有相同的行和列两矩阵对应元素相加减。
A+B,A-B, A、B必须同维
如果用户给永久变量赋值,原始默认值丢失,直至清除变量 或重启Matlab
3
2.1.2、 MATLAB 的语句
1.百分号(注释符)%
与其它程序语言一样,为了方便其他人及日后自己对程序的阅读,
增加程序的可读性,需要在MATLAB文件中加入注释。注释行必须 以%号开始,执行文件时,%号后面的语句不予执行。
X= -4
4
5
16
2.1.6 复数表示
1.将其元素逐个赋予复数 如 z=[1+2i,3+4i;5+6i,7+8i] 2.将其实部和虚部矩阵分别赋值 如z=[1,3;5,7]+[2,4;6,8]*i (*号不能省略) 若在前面程序中曾经给i或j赋过值,则i或j就不再是虚数单位, 此时应把赋值的i或j清除再执行虚数赋值语句。
13
2.利用函数linspace和logspace创建向量: linspace 函数,创建指定长度的等距向量
t=linspace(初值d1,终值d2,点数n)
在线性空间上,行矢量的值从d1到d2,数据个数n,缺省时n为100。
例:k=linspace(-pi,pi,4)
logspace 函数,创建对数等距的向量
当想个给某一个变量赋值时,为了避免与已存在的变量同名, 就要用exist查询当前的工作空间内是否存在该变量。调用格 式:x=exist(‗A‘)
21

>>a=[1 2 3;4 5 6];b=[2 5]+[8 9]*i;c=23.5; >>who Your variables are: a b c >>whos Name Size Bytes Class a 2x3 48 double array b 1x2 32 double array (complex) c 1x1 8 double array Grand total is 9 elements using 88 bytes
29
2. 乘(、. )运算
① 矩阵乘()运算A*B
A矩阵的列数必须等于B矩阵的行数
标量可与任何矩阵相乘。 ② 数组乘(.)运算A.*B A,B维数相同,相应元素相乘。
Am×n*Bn×p
c*Bn×p
>>A=[1 2 3;4 5 6;7 8 9]; >>B=[2 4 6;1 3 5;7 9 10]; >>A.*B
2.逗号和分号
在赋值语句中,逗号(空格)用在同一行中各元素之间,分
号用在行与行之间。多条语句放在一行,用逗号分开表示要求显
示结行标志(…)
当一条语句或矩阵太长,一行不能显示时,可用续行标志 … , 另起一行继续完成该条语句的书写。
4.中断键
在命令的执行过程中,可以随时按下CTRL+C键中断MATLAB的 运行。
8
3、从外部数据文件调入矩阵:
load
从磁盘读入.mat文件,或读入排列成矩阵的.txt文件 例如:目录C:\Program Files\MATLAB\R2007b\work\matlab_training下有生物医学信号的文 本文件bio_signal.txt,在命令窗口输入:
load('C:\Program Files\MATLAB\R2007b\work\matlab_training\bio_signal.txt')
其他方法
fopen, fread, textscan, fscan, fclose
10
数据存储
save
save filename 把全部内存变量保存为filename.mat文件。 save filename a b c 把a、b、c三个变量保存在文件名为 filename.mat的文件中。 save filename a b c –append 把a、b、c三个变量添加到文件 名为filename.mat的文件中。
18

>>a=1;b=2;c=3; >>clear a,b;c c= 3 >>b b= 2 >>a ??? Undefined function or variable ‗a‘. ※用clear命令时,系统不会给出确认提示,一旦 删除将不能恢复。
19
练习
1.请指出如下5个变量名中,哪些是合法的? abcd-2 xyz_3 3chan a变量 ABCDefg 2.指令clear, clc各有什么用处? 3.创建一个6阶的魔方矩阵A 把第3行第4列的元素赋给B 把第2行、第4行的所有元素赋给C
y=logspace(d1,d2)
y=logspace(d1,d2,N)
从10的d1次幂到d2次幂之间按等比级数等分为N个点,N缺省时,默认为50。
14
2.1.5 矩阵的下标
创建了矩阵之后,若要调用矩阵里的元素,就要了解单个元素标志和 寻访的3种方式:
A=
1.―全下标”标志
―全下标”标志由行下标和列下标组成, 例如:A(3,5)标志矩阵A的第3行第5列元素。
第二章 MATLAB 的数值 计算功能
1
2.1
变量及其赋值
2.1.1变量
变量由变量名表示,变量的命名应遵循如下规则: 1.变量名必须以字母开头;由字母、数字和下划线混合组成;不允 许使用空格、标点符号; 2.变量名的字符长度不应超过31个(对于6.x版本); 3. MATLAB严格区分大小写字母,因此,A和a是不同的变量。
a^0.5
ans = 0.4498 + 0.7623i 0.5526 + 0.2068i 0.6555 -0.3487i 1.0185 + 0.0842i 1.2515 + 0.0228i 1.4844 - 0.0385i 1.5873 - 0.5940i 1.9503 - 0.1611i 2.3134 + 0.2717i
22
2.2.2 format 命令(数据格式)
format 用来控制 数据 显示格式。 format compact 数据显示紧凑格式 format loose 数据显示稀疏格式(系统默认) ※ format 命令只改变数字的显示格式,并不改变 数字的大小。
23
format 命令 只改变数字 的显示格式, 并不改变数 字的大小。
11
示例
clear; N=1000; x=rand(1,N); y=5; save rand_data x y; save rand_data_txt.txt clear
load(‗rand_data.mat‘); 间
%删除工作空间内的所有变量
%产生一个随机向量 % % 把x y存入文件rand_data.mat中 x -ascii %删除工作空间内的所有变量 % 把文件rand_data.mat中的变量载入工作空
1 2 3 4 5 6 7 8 9
7
2、由函数创建矩阵:
几种特殊矩阵的产生
zeros(m,n) 元素全为零的mn阶矩阵
ones(m,n) 元素全为 1 的mn矩阵 rand(m,n) 元素为在[0,1]上均匀分布的mn随机矩阵 randn(m,n) 元素为正态分布的mn随机矩阵 eye(n) 单位矩阵, nn阶的方阵 magic(n) 魔方矩阵,其特点是元素由1到n2的自然数组成,每行、每列及两 对角线上的元素之和均等于(n3+n)/2
0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214
2.―单下标”标志
按列计数,表示下标 A(3,:) A(:) %矩阵A的第三行 %把矩阵A转换成列向量,
0.0185 >> A(8)
ans =
15
3. 逻辑矩阵
例 找出数组A=
Sin是变量名,而sin是正弦函数名
4.关键字(如 if,while 等)不能作为变量名。
2
永久变量
•pi — 圆周率的近似值3.1415926 • inf或Inf — 表示正无穷大,定义为1/0 • NaN — 非数,它产生于0× ,0/0,/ 等运算 • i,j — 虚数单位 • ans — 对于未赋值运算结果,自动赋给ans
相关主题