第4章离子和配位

上传人:cl****1 文档编号:571490345 上传时间:2024-08-11 格式:PPT 页数:59 大小:820.50KB
返回 下载 相关 举报
第4章离子和配位_第1页
第1页 / 共59页
第4章离子和配位_第2页
第2页 / 共59页
第4章离子和配位_第3页
第3页 / 共59页
第4章离子和配位_第4页
第4页 / 共59页
第4章离子和配位_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《第4章离子和配位》由会员分享,可在线阅读,更多相关《第4章离子和配位(59页珍藏版)》请在金锄头文库上搜索。

1、第三讲第三讲 矩阵的操作矩阵的操作一一矩阵的建立矩阵的建立二二矩阵的保存和调用矩阵的保存和调用三三矩阵的拆分矩阵的拆分四四多维矩阵多维矩阵五五矩阵的运算矩阵的运算六六字符与字符串字符与字符串一一 矩阵的建立矩阵的建立1.1.直接输入法直接输入法2.2.利用利用M文件建立矩阵文件建立矩阵3.3.利用矩阵编辑器利用矩阵编辑器Matrix Editor完成输入完成输入和修改和修改4.4.利用利用MATLAB函数建立矩阵函数建立矩阵5.5.建立大矩阵建立大矩阵1. 1. 直接输入法直接输入法 将将矩矩阵阵的的元元素素用用方方括括号号括括起起来来,按按矩矩阵阵行行的的顺顺序序输输入入各各元元素素,同同一

2、一行行的的各各元元素素之之间间用用空空格格或或逗逗号号分隔,不同行的元素之间用分隔,不同行的元素之间用分号分号分隔。分隔。例例:x=1 2 3 4 ;5 6 7 8 x=1,2,3,4;5,6,7,8 2. 2. 利用文件建立矩阵利用文件建立矩阵 对对于于比比较较大大且且比比较较复复杂杂的的矩矩阵阵,可可以以为为它它专门建立一个专门建立一个M文件。文件。 例例: 利用利用M文件建立文件建立A矩阵。矩阵。 (1)(1)启启动动有有关关编编辑辑程程序序或或MATLABMATLAB文文本本编编辑辑器器,并输入待建矩阵并输入待建矩阵. . (2)(2)把把 输输 入入 的的 内内 容容 存存 盘盘 (

3、 (设设 文文 件件 名名 为为mymatrix.m)mymatrix.m)。 (3)(3)运运行行该该M M文文件件,就就会会自自动动建建立立一一个个名名为为A A的的矩阵,可供以后使用。矩阵,可供以后使用。A = 16.0 3.0 2.0 13.0 5.0 10.0 11.0 8.0 9.0 6.0 7.0 12.0 4.0 15.0 14.0 1.0 (2) (2) 存为存为: mymatrix.m: mymatrix.m(3) (3) 运行运行: mymatrix: mymatrix(1) MATLAB(1) MATLAB程序编辑器中输入程序编辑器中输入: : ( (一一) ) 利用利

4、用MATLABMATLAB程序编辑器程序编辑器: : (1) 编辑一个文本文件编辑一个文本文件: 16.0 3.0 2.0 13.05.0 10.0 11.0 8.09.0 6.0 7.0 12.04.0 15.0 14.0 1.0(2) 装入装入 该文本文件:该文本文件:load mymatrix.dat 或者:或者:load mymatrix.txt (3) 创建一个变量名为创建一个变量名为mymatrix的矩阵的矩阵( (二二) ) 利用其它文本编辑器利用其它文本编辑器: : (文本或二进制格式)(文本或二进制格式) 将以文本或二进制格式存储的数据读入将以文本或二进制格式存储的数据读入

5、MATLAB 的另一种的另一种方式是用方式是用 Import Wizard.FileImport Data3. 3. 利用矩阵编辑器利用矩阵编辑器 Array EditorArray Editor 先在命令窗口输入:先在命令窗口输入: A=1在在Workspace窗窗口口,双双击击该该变变量量,打打开开矩矩阵阵编编辑器,进行输入和修改。辑器,进行输入和修改。 4.4.利用利用MATLABMATLAB函数建立函数建立特殊矩阵特殊矩阵几几个个产产生生特特殊殊矩矩阵阵的的函函数数:zeros、ones、 eye、rand、randn。n这这几几个个函函数数的的调调用用格格式式相相似似,下下面面以以产

6、产生生零零矩矩阵阵的的zeros函数为例进行说明。其调用格式是:函数为例进行说明。其调用格式是: zeros(m) 产生产生mm零矩阵零矩阵 zeros(m,n) 产生产生mn零矩阵。零矩阵。 zeros(size(A) 产生与矩阵产生与矩阵A同样大小的零矩阵同样大小的零矩阵n相相关关的的函函数数有有:length(A)给给出出行行数数和和列列数数中中的的较较大大者者,即即length(A)=max(size(A);ndims(A)给出给出A的维数,的维数, size(A)多维矩阵各维长度多维矩阵各维长度常见的矩阵生成函数常见的矩阵生成函数zeros(m,n)生成一个 m 行 n 列的零矩阵零

7、矩阵,m=n 时可简写为 zeros(n)ones(m,n)生成一个 m 行 n 列的元素全为全为 1 的矩阵的矩阵, m=n 时可写为 ones(n)eye(m,n)生成一个主对角线全为主对角线全为 1 的 m 行 n 列矩阵, m=n 时可简写为 eye(n),即为 n 维单位矩阵单位矩阵diag(X)若 X 是矩阵,则 diag(X) 为 X 的主对角线向量若 X 是向量,diag(X) 产生以 X 为主对角线的对角矩阵tril(A)提取一个矩阵的下三角部分下三角部分triu(A)提取一个矩阵的上三角部分上三角部分rand(m,n)产生 01 间均匀分布的随机矩阵随机矩阵 m=n 时简写

8、为 rand(n)randn(m,n)产生均值为0,方差为1的标准正态分布随机矩阵标准正态分布随机矩阵m=n 时简写为 randn(n) 例: 已知矩阵试生成与矩阵A大小相同的单位阵,全0阵及全1阵;解: 输入命令A=1 2 3;4 5 6;7 8 9;B1=eye(size(A)B2=zeros(size(A)B3=ones(size(A)Z = zeros(2,4)Z = 0 0 0 0 0 0 0 0R = randn(4,4)R =1.0668 0.2944 -0.6918 -1.44100.0593 -1.3362 0.8580 0.5711-0.0956 0.7143 1.2540

9、 -0.3999-0.8323 1.6236 -1.5937 0.6900F = 5*ones(3,3)F = 5 5 5 5 5 5 5 5 5N = fix(10*rand(1,10)N = 4 9 4 4 8 5 2 6 8 0n此外,常用的函数还有此外,常用的函数还有reshape(A,m,n),它在,它在矩阵总元素保持不变的前提下,将矩阵矩阵总元素保持不变的前提下,将矩阵A重新重新排成排成mn的二维矩阵的二维矩阵, ,其元素是以列的方式从其元素是以列的方式从A中获得,中获得, A必须包含必须包含mn个元素个元素。A = 16 3 2 13 5 10 11 8 9 6 7 12 4 1

10、5 14 1reshape(A,2,8)ans = 16 9 3 6 2 7 13 12 5 4 10 15 11 14 8 15. 5. 建立大矩阵建立大矩阵 大矩阵可由方括号中的小矩阵建立起来。大矩阵可由方括号中的小矩阵建立起来。例如例如: A=1 2 3 ; 4 5 6 ; 7 8 9; C=A, eye(size(A); ones(size(A), AC = 1 2 3 1 0 0 4 5 6 0 1 0 7 8 9 0 0 1 1 1 1 1 2 3 1 1 1 4 5 6 1 1 1 7 8 96 6 冒号表达式冒号表达式n冒号表达式的一般格式:冒号表达式的一般格式:e1:e2:e

11、3n还还可可以以用用linspace函函数数产产生生一一个个线线性性间间隔隔的的行行向向量:量:linspace(a,b,n):a,b,n:初值,终值,点数:初值,终值,点数nlinspace(a,b,n)与与 a:(b-a)/(n-1):b 等价。等价。nlinspace用用于于产产生生一一个个等等差差数数列列,括括号号里里三三项项分分别表示起始值、终止值和元素数目;别表示起始值、终止值和元素数目;nlogspace用用于于产产生生一一个个对对数数间间隔隔行行向向量量(等等比比数数列列),b=logspace(0,4,5), 表表示示产产生生一一个个起起始始值值为为100, 终止值为终止值为

12、104, 元素数目为元素数目为5的等比数列的等比数列.X=10:20X=0:0.1:0.5X=linspace(0,pi,11) 或或X= linspace(0,1,11)* piX = Columns 1 through 7 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 Columns 8 through 11 2.1991 2.5133 2.8274 3.1416二二 矩阵的保存和调用矩阵的保存和调用save mydata A X load mydata 系系统统自自动动沿沿设设定定好好的的路路径径以以”.mat”格格式式存存储文件储文件 save

13、file = mydata.mat; save(savefile, A, X) Load(savefile) 如果想存储在指定路径:如果想存储在指定路径:save D:homeworkmydata A X 或者:或者:savefile = D:homeworkmydata.mat;三三 矩阵的拆分矩阵的拆分MATLAB允允许许用用户户对对一一个个矩矩阵阵的的单单个个元元素素进进行行赋赋值值和操作。例如和操作。例如 A(3,2)=200也也可可以以采采用用矩矩阵阵元元素素的的序序号号来来引引用用矩矩阵阵元元素素。矩矩阵阵元素按元素按列列编号,先第一列,再第二列,依次类推。编号,先第一列,再第二列

14、,依次类推。以以 mn 矩阵矩阵A为例,矩阵元素为例,矩阵元素 A(i, j) 的序号为:的序号为: (j-1)*m+i。 其其 相相 互互 转转 换换 关关 系系 也也 可可 利利 用用 sub2ind和和ind2sub函函数数求求得得(分分别别为为:把把矩矩阵阵下下标标变变为为元元素素序序号和把元素序号变为矩阵下标号和把元素序号变为矩阵下标)。)。1. 1. 矩阵元素矩阵元素A = 17 24 1 8; 2 22 7 14; 4 6 13 20A = 17 24 1 8 2 22 7 14 4 6 13 20% ind=sub2ind(size(A),2,2) ( ind = 5 ) in

15、d=sub2ind(size(A),2,3) ( ind = 8)i,j=ind2sub(size(A),5)i = 2j = 2 2. 2. 矩阵拆分和结构变换矩阵拆分和结构变换 (1)(1)利用冒号表达式获得子矩阵利用冒号表达式获得子矩阵A(:, j)表表示示取取A矩矩阵阵的的第第j列列全全部部元元素素;A(i,:)表表示示A矩矩阵阵第第i行行的的全全部部元元素素;A(i,j)表表示示取取A矩矩阵阵第第i行行、第第j列列的元素。的元素。 A(i:i+m,:)表表示示取取A矩矩阵阵第第ii+m行行的的全全部部元元素素;A(:,k:k+m)表表示示取取A矩矩阵阵第第kk+m列列的的全全部部元元

16、素素,A(i:i+m,k:k+m)表表示示取取A矩矩阵阵第第ii+m行行内内,并并在在第第kk+m列列中的所有元素。中的所有元素。 (2)(2)利用空矩阵删除矩阵的元素利用空矩阵删除矩阵的元素 在在MATLAB中中,定定义义为为空空矩矩阵阵。给给变变量量X赋空矩阵的语句为赋空矩阵的语句为X= 。注注意意: X= 与与clear X不不同同,clear是是将将X从从工工作作空空间间中中删删除除,而而空空矩矩阵阵则则存存在在于于工工作空间,只是维数为作空间,只是维数为0。将将某某些些元元素素从从矩矩阵阵中中删删除除,采采用用将将其其置置为空矩阵为空矩阵的方法就是一种有效的方法。的方法就是一种有效的

17、方法。 X = .16 3 2 135 10 11 89 6 7 124 15 14 1 ;X(:,2) = X(1,2) = X(2:2:10) = X =16 2 135 11 89 7 124 14 1X = 16 9 2 7 13 12 1A=4:6A=A-3;A;A+3A = 1 2 3 4 5 6 7 8 9B=A(1:2,2:3)B = 2 3 5 6A(:,2)=A = 1 3 4 6 7 9A(2,2)=0A = 1 3 4 0 7 9A(3)ans = 7A(2:4)ans = 4 7 3A = 1 2 3 4 5 6 7 8 9sum(A)ans = 12 15 18Aa

18、ns = 1 4 7 2 5 8 3 6 9B=diag(A) %提取或提取或建立建立对角阵对角阵B = 1 5 9C=diag(B)C = 1 0 0 0 5 0 0 0 9A = 1 2 3 4 5 6 7 8 9B=A4B = 0 0 0 0 1 1 1 1 1r,c=find(A4)r = 3 2 3 2 3c = 1 2 2 3 3A=rand(3,4)A1=A(2:3,1,3,4)A2=A(1,3,2,4)L=A(2,:) tril(A) %主对角线及以下元素取矩阵主对角线及以下元素取矩阵A的元素,其余为的元素,其余为0tril(A,K)%相对第相对第K对角线及以下元素对角线及以下

19、元素 triu(A) %主对角线及以上元素取矩阵主对角线及以上元素取矩阵A的元素,其余为的元素,其余为0triu(A,K)%rot90(A) %逆时针旋转逆时针旋转90度度rot90(A,K) L=flipud(A) %将矩阵将矩阵A上下翻转上下翻转 fliplr(A) %将矩阵将矩阵A左右翻转左右翻转reshape(A,m,n)(3) (3) 矩阵的结构变换矩阵的结构变换Practice: A=magic(4)B1=rot90(A), B2=rot90(A,2), B3=tril(A,2),B4=triu(A,-1), BT=A, (1) 对二维矩阵进行扩充得到三维矩阵:对二维矩阵进行扩充得

20、到三维矩阵:四四 多维矩阵多维矩阵以三维矩阵为例,常用的方法有以三维矩阵为例,常用的方法有4 4种:种:a=1,2;3,4a = 1 2 3 4 a(:,:,2)=5,6;7,8a(:,:,1) = 1 2 3 4a(:,:,2) = 5 6 7 8(2) 若若干干个个同同样样大大小小的的二二维维矩矩阵阵进进行行组组合合得得到到三三维矩阵维矩阵:b(:,:,1)=1 2;3 4b = 1 2 3 4 b(:,:,2)=5 6;7 8b(:,:,1) = 1 2 3 4b(:,:,2) = 5 6 7 8(3)除除产产生生单单位位矩矩阵阵的的eye函函数数外外,前前面面介介绍绍的的建建立矩阵的函

21、数都可以延伸到三维矩阵立矩阵的函数都可以延伸到三维矩阵:C=randn(4,3,2)c=1 2c = 1 2C=repmat(c,3 2 4)C(:,:,1) = 1 2 1 2 1 2 1 2 1 2 1 2C(:,:,2) = 1 2 1 2 1 2 1 2 1 2 1 2repmat:复制小矩阵生成多维数组复制小矩阵生成多维数组(4)用用cat函数构建多维矩阵函数构建多维矩阵。 cat(dim,A1,A2,) cat函函数数把把大大小小相相同同的的若若干干矩矩阵阵A1,A2,,按按照照dim指定的维数组合成新的矩阵指定的维数组合成新的矩阵A1=1 2;3 4, A2=5 6;7 8C1=

22、cat(1,A1,A2)C2=cat(2,A1,A2)C3=cat(3,A1,A2)(一)算术运算(二)关系运算(三)逻辑运算五五 矩阵的运算矩阵的运算(一)算术运算(一)算术运算1. 1. 基本算术运算基本算术运算 MATLAB的的基基本本算算术术运运算算有有:(加加)、(减减)、*(乘乘)、/(右除右除)、(左除左除)、(乘方乘方)。 注注意意:运运算算是是在在矩矩阵阵意意义义下下进进行行的的,单单个个数数据据的的算术运算只是一种特例。算术运算只是一种特例。2. 2. 点运算点运算 点点运运算算符符有有.*、./、.和和.。两两矩矩阵阵进进行行点点运运算算是是指指它它们们的的对对应应元元素

23、素进进行行相相关关运运算算,要要求求两两矩阵的维数相同。矩阵的维数相同。3MATLABMATLAB常用数学函数常用数学函数(1)矩阵加、减(,)运算 相加、减的两矩阵必须有相加、减的两矩阵必须有相同的行和列相同的行和列,两矩阵对应元素相加减。两矩阵对应元素相加减。 允许参与运算的两矩阵之一是标量。标量允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加减操作。与矩阵的所有元素分别进行加减操作。(2)矩阵乘()运算 A A矩阵的列数必须等于矩阵的列数必须等于B B矩阵的行数矩阵的行数 标量可与任何矩阵相乘。标量可与任何矩阵相乘。(3)矩阵除( , / )运算 矩阵除的运算在线性代数中没

24、有,有矩阵逆的矩阵除的运算在线性代数中没有,有矩阵逆的运算,在运算,在matlab中有两种矩阵除运算:中有两种矩阵除运算: (左除左除): AB表示表示A左除左除B ; /(右除右除): A/B表示表示B右右除除A设设A是可可逆矩阵的运算,逆矩阵的运算, AX=B的解是A左除左除B,即X= AB; XA=B的解是A右除右除B,即X=B /AA=1 2;3 4;5 6;B=5 6;7 8;9 10; C=AB D=A/ B E= B A F= B / A对于对于AX=b的线性方程组,有两种解法:一种是利的线性方程组,有两种解法:一种是利用矩阵求逆,即用矩阵求逆,即X=inv(A)*b; 另一种是

25、用左除,另一种是用左除,即即X= A b 。除法的速度快。除法的速度快。A=rand(5)b=ones(5,1) x1=inv(A)*b x2=Ab(4)矩阵乘方( )运算 A p A 自乘自乘p 次幂次幂 设设A为方阵,为方阵, p为正整数,则为正整数,则A p 表示表示 A 自自乘乘p 次;次;若若A为方阵且非奇异,为方阵且非奇异, p为正整数,为正整数, A (-p)表示表示 A的逆自乘的逆自乘p 次。次。 对于对于p的其它值的其它值,计算将涉及特征值和特征向量,计算将涉及特征值和特征向量,如如A , p 都是矩阵,都是矩阵, A p 则无意义。则无意义。A=1, 2, 3;2, 3,

26、1;3, 2,1B=A2C=A0.3(5). 矩阵的其它运算 nInv 矩阵求逆矩阵求逆 ;det 行列式的值行列式的值neig 矩阵的特征值和特征向量;矩阵的特征值和特征向量;ndiag 对角矩阵对角矩阵 ; 矩阵转置;矩阵转置;nsqrt 矩阵开方;矩阵开方;nmean 矩阵元素的平均值;矩阵元素的平均值;nstd 矩阵元素的标准偏差;矩阵元素的标准偏差;命令命令 :X,D=eig(A)n其中其中D D的对角线元素是特征值,的对角线元素是特征值,nX X是矩阵,它的列是相应的特征向量是矩阵,它的列是相应的特征向量例:例:A=3,-1;-1,3;nX,D=eig(A)X= -0.7071 -

27、0.7071 0.7071 -0.7071D= 4 0 0 2The first row contains the heart rate, weight, and exercise hours for patient 1, the second row contains the data for patient 2, and so on. The mean and standard deviation of each column:mu = mean(D), sigma = std(D)mu = 75.8000 161.8000 3.4800sigma = 5.6303 25.4990 2.2

28、107 D=72 134 3.2; . 81 201 3.5; . 69 156 7.1; . 82 148 2.4; . 75 170 1.2 (6)点运算(,./,.)a=1 2 3;4 5 6;7 8 9b=2 4 6;1 3 5;7 9 10a.*bans = 2 8 18 4 15 30 49 72 90 a*b 对比一下上面两式得到的结果。a.b=b./a %给出a,b对应元素间的商. %都是a的元素被b的对应元素除 a=1 2 3,b=4 5 6 c1=a.bc2=b./ac1 = 4.0000 2.5000 2.0000c2 = 4.0000 2.5000 2.0000. 元素

29、对元素的幂a=1 2 3, b=4 5 6z=a.2z = 1.00 4.00 9.00z=a.bz = 1.00 32.00 729.00logm(A) 求矩阵求矩阵A的对数的对数sqrtm(A) 求矩阵求矩阵A的平方根的平方根funm(A,fun) 一般的方阵函数一般的方阵函数(二)关系运算 MATLAB提提供供了了6种种关关系系运运算算符符:(小小于于)、(大大于于)、=(大大于于或或等等于于)、=(等于等于)、=(不等于不等于)。关系运算符的运算法则。关系运算符的运算法则。B = 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 0 0 1 0 0 1 0C =

30、1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1A = 0.9501 0.7621 0.6154 0.4057 0.0579 0.2311 0.4565 0.7919 0.9355 0.3529 0.6068 0.0185 0.9218 0.9169 0.8132 0.4860 0.8214 0.7382 0.4103 0.0099 0.8913 0.4447 0.1763 0.8936 0.1389A=rand(5) B=A0.5 C=A=0.5 例例 : 产产 生生 5阶阶 随随 机机 方方 阵阵 A, 其其 元元 素素 为为10,90区区

31、间间的的随随机机整整数数,然然后后判判断断A的的元素是否能被元素是否能被3整除。整除。 (1) 生成生成5阶随机方阵阶随机方阵A A=fix(90-10+1)*rand(5)+10) (2) 判断判断A的元素是否可以被的元素是否可以被3整除整除 P=rem(A,3)=0(三)逻辑运算(三)逻辑运算 MATLAB提提供供了了4种种逻逻辑辑运运算算符符:&(与与)、|(或或)、(非非)、xor(异或异或)。 运算法则。运算法则。a=1:5b=2:6c=(a2)&(b=0).*y ; %将sin (x)的负值设为0z=z+0.5*(y0); z=(x a=1 2 0 4; . 2 0 1 3b=al

32、l(a)c=any(a)b = 1 0 0 1c = 1 1 1 1 exist(a) %变量或函数是否被定义ans = 1 exist(e)ans = 0isempty(a) %参数是否为空ans = 0isstr(hello) %参数是否为一字符串ans = 1 isequal(a,b) %判断数组或矩阵是否相等ans = 0 y=Hello , z=hellostrcmp(y,z) %判断字符串是否相等ans = 0b=4 5 6isprime(b) %元素是否为素数ans = 0 1 0六字符与字符串字字符符串串是是用用单单撇撇号号括括起起来来的的字字符符序序列列。例例如如, Nort

33、hen Jiaotong University。若若字字符符串串中中的的字字符符含含有有单单撇撇号号,则则该该单单撇撇号号字字符符应应用用两两个个单单撇撇号号来来表表示示。 S= Im Lucy字字符符串串中中每每个个字字符符(空空格格也也是是字字符符),对对应应矩矩阵阵的的一一个个元元素。素。 size(S)字字符符串串是是以以ASCII码码形形式式存存储储的的。用用abs和和double命命令令可可以看到字符所对应的以看到字符所对应的ASCII码值。码值。 abs(S)setstr和和char命令可以把命令可以把ASCII码矩阵转换为字符串矩阵。码矩阵转换为字符串矩阵。char(72 10

34、1 108 108 111)setstr(72 101 108 108 111)ans =Helloch=Northen Jiaotong Universitye=ch(1:5) f=ch(end:-1:1)g=upper(ch)h=lower(g) 001 002;003 004ans =001 002003 004 str2num(001 002; 003 004)ans = 1 2 3 4str2num , num2str 与与字字符符串串有有关关的的另另一一个个重重要要函函数数是是eval,其其调调用格式为:用格式为:eval(t) 其其中中t为为字字符符串串。它它的的作作用用是是把把字字符符串串的的内内容容作作为对应的为对应的MATLAB语句来执行语句来执行。例如。例如 t=pi; m=t,sin(t),cos(t); y=eval(m)y = 3.1416 0.0000 -1.0000

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号