在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
2.Y=linspace(a,b,m) %a为起点,b为终点的m个数组成的等距向量。
>> logspace(1,2,5)
ans =
10.0000 17.7828 31.6228 56.2341 100.0000
>> log10(ans)
ans =
1.0000 1.2500 1.5000 1.7500 2.0000
A1=zeros(m,n) %m´n的全0数组 A2=eye(m,n) %m´n的单位矩阵 B1=rand(m,n) %m´n的随机数数组,其中个元素服从[0,1]上的平均分布 B2=randn(m,n) %m´n 标准正态分布随机数组
例: 生成5阶随机数矩阵,其中的随机数服从参数为20,2*2 的正态分布。 >> A=2*randn(5)+20 A = 21.0753 17.3846 17.3002 19.5901 21.3430 23.6678 19.1328 26.0698 19.7517 17.5850 15.4823 20.6852 21.4508 22.9794 21.4345 21.7243 27.1568 19.8739 22.8181 23.2605 20.6375 25.5389 21.4295 22.8344 20.9778
>> A=2*randn(5)+20 A = 22.0694 21.7768 22.8768 19.7955 19.9399
21.4538 17.7059 20.6504 19.5171 19.6702 19.3931 17.8623 18.4901 20.6384 21.2554 20.5877 18.3810 22.7406 20.6257 22.1865 18.4254 14.1114 16.5770 18.2702 22.2185 5.生成对角形矩阵的diag语句 函数diag(x)的用法: (1)若x是向量,则diag(x) 返回以x为对角元素的对角阵, diag(x,1) 是以x为次对角元素的次对角矩阵,依此类推。 (2)若X是矩阵(可以不是正方矩阵),则 diag(X)是X的对角元素组成的向量,diag(X,1) 是X的次对角元素组成的向量,以此类推。
例1.4:输入100阶5对角矩阵
参考程序: x=4*ones(100,1);y=2*ones(99,1);z=ones(98,1); A=diag(x)+diag(y,1)+diag(y,-1)+diag(z,2)+diag(z,-2); 6.1.3 数组的操作 1.3.1 子数组 类似于矩阵代数中子矩阵的定义,matlab中数组A的子数组由A的若干个行、列的交叉点上的元素组成。 一般,设U表示行的数组,V表示列的数组,则子数组表示为A(U,V) 当U (V)是全部的行(列)时,可以用冒号代替。如 >> A([2,3],:) ans = 2 3 4 5 6 7 3 4 5 6 7 8 在由数组A的第2,4行,第2,4,6列交叉点处元素形成的子数组如图 1.6所示。子数组的matlab描述为 A([2,4],[2,4,6]) 7.数组的拼接与剪切 >> a=[1,2,3,4;2,3,4,5]; >> b=[3,4;4,5;5,6]; >> c=[5,6;6,7;7,8]; >> d=[5,6;6,7;7,8;8,9;9,10]; >> A=[[a;[b,c]],d] ;号代表拼接到下一行(上下相接) ,代表左右相接 A = 1 2 3 4 5 6 2 3 4 5 6 7 3 4 5 6 7 8 4 5 6 7 8 9 5 6 7 8 9 10 8.没有元素的数组[ ]称为空数组。给矩阵A的若干个行(列)赋值空数组相当于剪切掉这些行(列)。例如,对上面的数组A作下面操作: >> A(:,[2,4])=[ ] A = 1 3 5 6 2 4 6 7 3 5 7 8 4 6 8 9 5 7 9 10 9.集合(元胞数组) 在matlab中,变量可以存放一个数组,也可以存放以数组为元素的集合。集合以花括号限定,元素之间用逗号分隔。 例: 观察下面语句的运行结果 >> A={[1 2;3,4],‘This is a book’,1:5}; >> A{2} ans = This is a book >> A{1}+5 ans = 6 7 8 9 >> length(A) ans = 3
10.B=repmat(A,m,n); %把A作元素铺成m´n大数组 C=reshape(A,m,n); %在总元素个数不变的前提下,改变数组的行列数。 D=rot90(A, k); %数组逆时针旋转k个90度 E=flipud(A); %数组上下翻转 F=fliplr(A); %数组左右翻转
F=A+B F=A-B F=A*B F=A\B F=B/A F=A^m 除法是乘法的逆运算。 Ax=B®x=A\B 注:运算的逆是解方程!
数组运算的运算符是算术运算符前加点,故又称点运算 点运算有: .* ./ .\ .^ 数组的加减法和矩阵的加减法一致,不用加点。 注:在MATLAB中,函数作数值运算要用点运算。 13.逻辑运算 matlab定义以下逻辑运算 ~ 非 & 与 | 或 xor 异或 逻辑运算也是数组运算。 例 输入一个矩阵,求其中被3整除的正数及其位置 >> A=[-1 5 9 -3 7; 6 -2 5 15 8; -6 7 21 -7 -12]; >> B=A>=0&mod(A,3)==0 返回为逻辑值0-1 B = 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 >> B.*A ans = 0 0 9 0 0 6 0 0 15 0 0 0 21 0 0
(先进行逻辑判断再进行复原可行元素) 14.参考程序: x=0:0.1:4; flag1=x<=1; flag2=x>1; f=flag1.*x.^2+flag2.*sqrt(x); plot(x, f) 15.Matlab中的find函数提供了一个简便的下标操作方法。find函数的调用格式为 find(g(A)) 其中 g是矩阵A的关系或逻辑表达式。find 函数则返回满足这一条件的元素的一维下标集合。 例 将矩阵A中大于0.5的元素换成0.5。 >> A=rand(5) A = 0.8147 0.0975 0.1576 0.1419 0.6557 0.9058 0.2785 0.9706 0.4218 0.0357 0.1270 0.5469 0.9572 0.9157 0.8491 0.9134 0.9575 0.4854 0.7922 0.9340 0.6324 0.9649 0.8003 0.9595 0.6787 >> U=find(A>0.5);%返回A的符合条件的位置 >> A(U)=0.5 A =
0.5000 0.0975 0.1576 0.1419 0.5000 0.5000 0.2785 0.5000 0.4218 0.0357 0.1270 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.4854 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 16.Matlab的函数: 矩阵函数, 数组函数 matlab矩阵函数 最常使用的矩阵函数包括行列式函数det、矩阵求逆函数inv和求特征值和特征向量的函数eig。调用格式为 det(A) %返回矩阵A的行列式的值 inv(A) %返回矩阵A的逆矩阵 E= eig(A) %返回由矩阵A的全部特征值为元素的向量 [E,R]=eig(A) %返回特征向量和特征值
17.数组函数 初等数学函数都是数组函数。 数组函数作用于数组的每个分量。例如,sin(A)相当于对数组A的每个分量求正弦。 常用的数组函数: sin(A) cos(A) tan(A) cot(A) exp(A) log(A) log10(A) sqrt(A) round(A) floor(A) ceil(A) fix(A)
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论