sign(A),A为含http参数sign加密的三维向量,如何判断sign(A)是-1,0,还是1???

Matlab实训1-向量、矩阵的运算
>x1=[1 2 4],x2=[1,2,1],x3=">
您的位置: →
Matlab实训1-向量、矩阵的运算
向量、矩阵的创建及运算
2.1 向量、矩阵的创建及基本运算 2.1.1 向量的创建
1. 直接输入向量
&&x1=[1 2 4],x2=[1,2,1],x3=x1’, x4=[1;2;3] ? 运行结果 ? x1 = 1 2 4 x2 = 1 2 1 x3 = x4 = 1 1 2 2 4 3
2.冒号创建向量
默认间隔为1.0
x1=3.4:6.7, x2=3.4:2:6.7, x3=2.6:-0.8:0 ? 运算结果 x1 = 3.0 5.0 x2 = 3.0 x3 = 2.0 1.0
3.生成线性等分向量
指令x=linspace(a,b,n) 在[a,b]区间产生 n 个等分点(包括 端点) ? x=linspace(0,1,5) ? 结果 ? x = ? 0 0.0 0.0
2.1.2 向量的基本运算
设x=[x1 x2 x3]; y=[y1 y2 y3];为两个三维行 向量,a,b为标量。 向量的数乘:a*x=[a*x1 a*x2 a*x3] 向量的平移: x+b=[x1+b x2+b x3+b] 向量和: x+y=[x1+y1 x2+y2 x3+y3] 向量差: x-y=[x1-y1 x2-y2 x3-y3] 数的乘幂: 如 a^2
元素群运算(四则运算)
x.*y=[x1*y1 x2*y2 x3*y3] (元素群乘积) x./y=[x1/y1 x2/y2 x3/y3] (元素群右除,右 边的y做分母) x.\y=[y1/x1 y2/x2 y3/x3] (元素群左除,左 边的x做分母) x.^5=[x1^5 x2^5 x3^5] (元素群乘幂) 2.^x=[2^x1 2^x2 2^x3] (元素群乘幂) x.^y=[x1^y1 x2^y2 x3^y3] (元素群乘幂)
元素群运算(函数计算)
Matlab 有许多内部函数,可直接作用于向量产生一个 同维的函数向量。 x=linspace(0,4*pi,100);(产生100维向量x) y=sin(x); (y也自动为100维向量) y1=sin(x).^2; y2=exp(-x).*sin(x); 观察结果 ?
2.1.3 创建矩阵(数值矩阵的创建)
直接输入法创建简单矩阵。
A=[1 2 3 4; 5 6 7 8; 9 10 11 12] B=[-1.3,sqrt(3);(1+2)*4/5,sin(5);exp(2),6] 观察运行结果 ?
生成特殊矩阵
全1阵 ? ones(n), ones(m,n), ones(size(A)) 全零阵: ? zeros(n) ,zeros(m,n), zeros(size(A)) ? 常常用于对某个矩阵或向量赋0初值 单位阵: ? eye(n),eye(m,n) 随机阵: ? rand(m,n) , rand(n)=rand(n,n) 用于随机模拟, 数字在0~1间,满足均匀分布,常和 rand('seed',k)配合使用。
生成特殊矩阵
将rand指令运行多次,观察结果。 程序: ? y1=rand(1,5), y2=rand(1,5), ? rand('seed',3), x1=rand(1,5), ? rand('seed',3), x2=rand(1,5) 结果 ?
2.1.4 矩阵的运算
1. 矩阵的加减、数乘、乘积
C=A1+B1 D=A1-B1 syms c, cA=c*A1 A2=A1(:,1:3), B1 G=A2*B1
A, A_trans=A’ H=[1 2 3 ; 2 1 0 ; 1 2 3 ], K=[1 2 3 ; 2 1 0 ; 2 3 1] h_det=det(H), k_det=det(K), H_inv=inv(H),K_inv=K^-1
2. 矩阵的左除、右除
左除“ \ ”: 求矩阵方程AX=B的解;( A 、B的行要保持一致) 解为 X=A\B; 当A为方阵且可逆时有X=A\B=inv(A)*B; 右除“ / ”: 求矩阵方程XA=B的解 (A 、B的列要保持一致) 解为 X=B/A , 当A为方阵且可逆时有X=B/A=B*inv(A)
求矩阵方程: 设A、B满足关系式:AB=2B+A,求B。 其中A=[3 0 1; 1 1 0; 0 1 4]。 解:有(A-2I)B=A 程序 : A=[3 0 1; 1 1 0;0 1 4]; B=inv(A-2*eye(3))*A, B=(A-2*eye(3))\A 观察结果:
? 从一个矩阵中取出若干行(列)构成新矩阵成为剪裁,冒号
“:”是非常重要的剪裁工具。 A( : )逐列提取A中的所有元素作为一个列向量; A(i) 把A看作列向量A( : ),取其中第i个元素; A(r,c)提取A中,r定义的行,和c定义的列所构成的A的子 矩阵; A(r, : )提取A中,r定义的行,和全部列所构成的A的子矩 阵; A( : ,c)提取A中,全部行,和c定义的列所构成的A的子 矩阵; 还可利用一般向量和end运算符来表示矩阵下标,从而获得子 矩阵。end表示某一维的末尾元素下标。
将几个矩阵接在一起成为拼接,左右拼接行数要相同, 上下拼接列数要相同。 键入:D=[C, zeros(2,1)] 输出: D= 1 3 0 4 6 0
常用矩阵函数
det(A) : 方阵的行列式; rank(A): 矩阵的秩; eig(A): 方阵的特征值和特征向量; trace(A): 矩阵的迹; rref(A): 初等变换阶梯化矩阵A
2.2 矩阵元素的访问与赋值
?访问矩阵的元素需要使用矩阵元素的索引 ?使用矩阵元素的行列双下标形式A(*,*) ?使用全下标形式访问矩阵元素的方法简单、
直接,同线性代数的矩阵元素的概念一一 对应 ?使用矩阵元素的单下标形式A(*) ?矩阵元素的单下标是矩阵元素在内存中存储 的序列号,一般地,同一个矩阵的元素在连 续的内存单元中(元素的排列以列元素优先)
矩阵元素的访问与赋值(续) 例 A=
A(1,2) A(5)
A(2:4,2:3) 4 A([2 3 4],[2 3])
A(1:4,5) A(:,5) A(:,end) A(17:20) A(17:20)'
矩阵元素的访问与赋值(续)
?矩阵元素的单下标与双下标之间的转换关系 ?以m×n的矩阵为例
第i行第j列的元素双下标转换为单下标 l=(j-1)×m+i
例:A(1,2)→A(5)
m=4,n=5,i=1,j=2 l=(j-1)×m+i=(2-1)×4+1=5 ?MATLAB提供的两个函数 ?sub2ind:根据双下标计算单下标 ?ind2sub:根据单下标计算双下标
矩阵元素的访问与赋值(续)
例:&& A=[4 10 1 6 2;8 2 9 4 7;7 5 7 1 5;0 3 4 5 8] A= 4 10 1 6 2 8 2 9 4 7 && size(A) 7 5 7 1 5 ans = 0 3 4 5 8 && sub2ind(size(A),2,2) 4 5 ans = 6 && [i,j]=ind2sub(size(A),7) i= ans = 3 j= 2 7 ?&& ind2sub(size(A),7)
矩阵元素的访问与赋值(续)
?“逻辑1”访问 ?常用于寻找数组中所有大于某值的元素的问题
例子:找出数组A= -4 C2 0 2 4 中所有绝对值大于3的元素 -3 C5 1 3 5
&& A=[-4 -2 0 2 4;-3 -5 1 3 5]; %生成数组A && L=abs(A)&3 %产生与A同维的0―1逻辑值数组 L= 1 0 0 0 1 0 1 0 0 1 && islog
ical(L); %判断L是否逻辑值数组 && X=A(L) %把L中逻辑值1对应的A元素取出 X= -4 A(L): “逻辑1”访问。生成一维列数组,由与A同 -5 样大小的逻辑数组L中的“1”元素选出A的对应元 4 素,按单下标次序排成长列组成。 5
矩阵元素的访问与赋值(续)
?矩阵元素的赋值 ?全元素赋值方式:A(:)=D(:)
例: && A=zeros(2,4) A= 0 0 0 0 0 0 && D=[1:8] D= 1 2 3 && A(:)=D(:) A= 1 3 5 2 4 6
?结果:保持A的行宽、列长不变 ?条件: A、D两个数组的总元素数相等,但行宽、列长不一定相同
%产生元素全为0的矩阵 0 0 4 7 8 5 6 7 8
?&& D(:)=A(:) D= 0 0 0 0
矩阵元素的访问与赋值(续)
?矩阵元素的赋值(续) ?以单下标方式对A的部分元素重新赋值:A(s)=Sa
Sa不一定同是行数组或列数组
?结果:保持A的行宽、列长不变 ?条件: s单下标数组的长度必须与一维数组Sa的长度相等,但是s、
&& Sa=[10 20 30] Sa = 10 20 30 && A(s)=Sa A= ? && Sa=[10 20 30]' Sa = 10 20 30 && A(s)=Sa A= ?
例: && A=[1 2 3 4;5 6 7 8] A= 1 2 3 4 5 6 7 8 && s=[2 3 5] s= 2 3 5 && A(s) ans =
矩阵元素的访问与赋值(续)
?矩阵元素的赋值(续) ?以双下标方式对子数组A(r,c)进行赋值:A(r,c)=Sa
例: && A=[1 2 3 4;5 6 7 8] A= 1 2 3 4 5 6 7 8 && Sa=ones(2) Sa = 1 1 1 1
?结果:保持A的行宽、列长不变 ?条件: Sa的行宽、列长必须与A(r,c)的行宽、列长相同
&& A(:,[2 3]) ans = ? && A(:,[2 3])=Sa A= ?
2.3 矩阵(数组)操作函数
用于矩阵(数组)操作的常用函数
函数 size length ndims numel disp cat reshape repmat fliplr flipud flipdim find 说 明 获取矩阵的行、列数,对于多维数组,获取数组的各个维的尺寸 获取向量长度,若输入参数为矩阵或多维数组,则返回各个维尺寸的最大值 获取矩阵或多维数组的维数 获取矩阵或数组的元素个数 显示矩阵或者字符串内容 合并不同的矩阵或数组 保持矩阵元素的个数不变,修改矩阵的行数和列数 复制矩阵元素并扩展矩阵 交换矩阵左右对称位置上的元素 交换矩阵上下对称位置上的元素 获取指定的方向翻转交换矩阵元素 获取矩阵或者数组中非零元素的索引
矩阵(数组)操作函数(续)
例:size函数使用示例 && A=[1 2 3] A= 1 2 3 && size(A) ans = 1 3
&& B=[1 2 3;4 5 6] B= 1 2 3 4 5 6 && size(B) ans = 2 3
矩阵(数组)操作函数(续)
例:length函数使用示例 && A=[1 2 3;4 5 6] A= 1 2 3 4 5 6 && length(A) ans = 3
&& B=[1 2 3;4 5 6;7 8 9;4 2 7] B= 1 2 3 4 5 6 7 8 9 4 2 7 && length(B) ans = 4
矩阵(数组)操作函数(续)
例:ndims和numel函数使用示例 && B=[1 2 3;4 5 6] && A=[1 2 3] B= A= 1 2 3 1 2 3 4 5 6 && ndims(A) && ndims(B) ans = ans = 2 2 && numel(A) && numel(B) ans = ans = 3 6
矩阵(数组)操作函数(续)
例:reshape函数使
用示例 && A=1:8 A= 1 2 3 4 5 6 7 8 && B=reshape(A,2,4) 将矩阵A改成2行4列,也可写成 B= B=reshape(1:8,2,4) 1 3 5 7 2 4 6 8 不能改变矩阵包含元素的个数 && C=reshape(A,3,3) ??? Error using ==& reshape To RESHAPE the number of elements must not change.
矩阵(数组)操作函数(续)
例:对称交换函数使用示例 B= 8 1 3 5 7 7 2 4 6 8 && fliplr(B) ans = 1 7 5 3 1 2 8 6 4 2 && flipud(B) flipdim函数的第二个参数必须是 ans = 大于0的整数: 2 4 6 8 1 3 5 7 参数为1时,效果和flipud函数一致 参数为2时,效果和fliplr函数一致 && flipdim(B,1) ans = 2 4 6 1 3 5 && flipdim(B,2) ans = 7 5 3 8 6 4
矩阵(数组)操作函数(续)
例:repmat使用示例 && A=pascal(2) A= 1 1 1 2 && repmat(A,2,3) ans = 1 1 1 1 1 2 1 2 1 1 1 1 1 2 1 2
repmat函数的基本语法为: repmat(A,M,N) 作用是将指定的矩阵A复制M×N次, 其中M对应的是行,N对应的是列。 若M=N,则可简写成repmat(A,M) && repmat(A,2) ans = 1 1 1 1 2 1 1 1 1 1 2 1
数组的查找
?数组的查找函数是find,它能够查找数组中的非零 数组元素,并返回其数组索引值。 ?find函数在MATLAB中的使用语法形式: (1) a=find(A)返回数组A中非零元素的单下标索引 (2)[a,b]=find(A)返回数组A中非零元素的双下标索引 放方式。
矩阵(数组)操作函数(续)
创建复杂矩阵
使用MATLAB提供的矩阵扩展方法完成相应矩阵 的构造
假设矩阵A为三阶方阵,B为二阶方阵,由A和
B组合构成五阶方阵C=[A O;O’ B],其中O为
相应的零矩阵
矩阵(数组)操作函数(续)
例: && A=reshape(1:9,3,3); && B=[1 2;3 4]; && O=zeros(length(A),length(B)) O= ? && C=[A O;O' B]
矩阵(数组)操作函数(续)
例: && A=reshape(1:9,3,3); && B=[1 2;3 4]; && O=zeros(length(A),length(B)) O= 0 0 0 0 0 0 && C=[A O;O' B]
矩阵(数组)操作函数(续)
例: && A=reshape(1:9,3,3); && B=[1 2;3 4]; && O=zeros(length(A),length(B)) O= 0 0 0 0 0 0 && C=[A O;O' B] C= 1 4 7 0 0 2 5 8 0 0 3 6 9 0 0 0 0 0 1 2 0 0 0 3 4
矩阵(数组)操作函数(续)
提问: A=reshape(1:9,3,3); B=[1 2;3 4]; C= 1 2 0 0 0 3 4 0 0 0 0 0 1 4 7 0 0 2 5 8 0 0 3 6 9 && O=zeros(length(?),length(?)) O= ? && C=[A O;O' B] C= 1 4 7 0 2 5 8 0 3 6 9 0 0 0 0 1 0 0 0 3 0 0 0 2 4
&& C =[? O;O' ?]
矩阵(数组)操作函数(续)
提问: A=reshape(1:9,3,3); B=[1 2;3 4]; C= 1 2 0 0 0 3 4 0 0 0 0 0 1 4 7 0 0 2 5 8 0 0 3 6 9 && O=zeros(length(B),length(A)) O= 0 0 0 0 0 0 && C=[A O;O' B] C= 1 4 7 0 2 5 8 0 3 6 9 0 0 0 0 1 0 0 0 3 0 0 0 2 4
&& C =[? O;O' ?]
矩阵(数组)操作函数(续)
提问: A=reshape(1:9,3,3); B=[1 2;3 4]; C= 1 2 0 0 0 3 4 0 0 0 0 0 1 4 7 0 0 2 5 8 0 0 3 6 9 && O=zeros(length(B),length(A)) O= 0 0 0 0 0 0 && C=[A O;O' B] C= 1 4 7 0 2 5 8 0 3 6 9 0 0 0 0 1 0 0 0 3 0 0 0 2 4
&& C=[B O;O' A]
矩阵(数组)操作函数(续
提问: && O=zeros(length(A),length(B)) A=reshape(1:9,3,3); O= B=[1 2;3 4]; 0 0 C= 0 0 1 2 0 0 0 0 0 3 4 0 0 0 && C=[ ? ; ? ] 0 0 1 4 7 0 0 2 5 8 0 0 3 6 9 && O=zeros(length(B),length(A)) && C=[B O;O' A] O= 0 0 0 0 0 0
矩阵(数组)操作函数(续)
提问: && O=zeros(length(A),length(B)) A=reshape(1:9,3,3); O= B=[1 2;3 4]; 0 0 C= 0 0 1 2 0 0 0 0 0 3 4 0 0 0 && C=[B O';O A] 0 0 1 4 7 0 0 2 5 8 0 0 3 6 9 && O=zeros(length(B),length(A)) && C=[B O;O' A] O= 0 0 0 0 0 0
矩阵(数组)操作函数(续)
创建复杂矩阵 ? 利用不同的矩阵运算,通过矩阵合并运算符“[ ]” 将不同的矩阵组合在一起构成大矩阵 && A=[1 2;3 4]; && B=[A,A*2;tril(A),triu(A);A*3,A*4] B= 1 2 2 4 3 4 6 8 1 0 1 2 3 4 0 4 3 6 4 8 9 12 12 16
2.4 简单的数据分析
? 常用的数据统计处理函数
? 最大值和最小值
求和与求积 平均值和中值 累加和与累乘积 排序
最大值和最小值
? 求向量的最大(小)值 ? Y=max(X)、Y=min(X)
? 返回向量X的最大(小)值存入Y,如果X中包含复数
元素,则按模取最大(小)值。
? [Y,Z]=max(X)、[Y,Z]=min(X)
? 返回向量X的最大(小)值存入Y,最大值的序号存入
Z,如果X中包含复数元素,则按模取最大(小)值。
? 对行向量和列向量的操作结果是一样的
最大值和最小值
&& X=[-43,72,9,16,23,47] X= -43 72 9 16 23 && Y1=max(X) Y1 = 72 && Y2=min(X) Y2 = -43 && [Y1,Z1]=max(X) Y1 = 72 Z1 = 2 && [Y2,Z2]=min(X) Y2 = -43 Z2 = 1
最大值和最小值
&& X=[-43,72,9,16,23,47] X= -43 72 9 16 23 && Y1=max(X') Y1 = 72 && Y2=min(X') Y2 = -43 && [Y1,Z1]=max(X') Y1 = 72 Z1 = 2 && [Y2,Z2]=min(X') Y2 = -43 Z2 = 1
最大值和最小值
? 求矩阵的最大(小)值 ? Y=max(X)、Y=min(X)
? 返回一个行向量Y,其第i个元素是矩阵X的第i列上的最大(小)值。
? [Y,Z]=max(X)、[Y,Z]=min(X)
? 返回行向量Y和Z,行向量Y记录X的每列的最大(小)值,行向量Z
记录每列最大(小)值的行号。
? Y=max(X,[],dim)、Y=min(X,[],dim)
? dim取1时,该函数和max(X)或min(X)完全相同
? dim取2时,该函数返回一个列向量Y,其第i个元素是矩阵X的第i行
上的最大(小)值。
最大值和最小值
&& X=[1 8 4 2;9 X= 1 8 4 9 6 2 3 6 7 && Y1=max(X) Y1 = 9 8 7 && Y2=min(X) Y2 = 1 6 2 6 2 5;3 6 7 1] 2 5 1 5 && [Y1,Z1]=max(X) Y1 = 9 8 7 5 Z1 = 2 1 3 2 && [Y2,Z2]=min(X) Y2 = 1 6 2 1 Z2 = 1 2 2 3
最大值和最小值
&& X=[1 8 4 2;9 6 2 5;3 6 7 1] X= 1 8 4 2 9 6 2 5 3 6 7 1 && Y3=max(X,[],1) Y3 = 9 8 7 5 && Y4=min(X,[],1) Y4 = 1 6 2 1 && Y5=max(X,[],2) Y5 = 8 9 7 && Y6=min(X,[],2) Y6 = 1 2 1
最大值和最小值
&& X=[1 8 4 2;9 6 2 5;3 6 7 1] && [Y5,Z5]=max(X,[],2) X= Y5 = 1 8 4 2 8 9 6 2 5 9 3 6 7 1 7 && [Y6,Z6]=min(X,[],2) && [Y3,Z3]=max(X,[],1) Z5 = Y6 = Y3 = 2 1 9 8 7 5 1 2 Z3 = 3 2 1 3 2 1 && [Y4,Z4]=min(X,[],1) Z6 = Y4 = 1 1 6 2 1 3 Z4 = 4 1 2 2 3
大值和最小值
? 两个向量或矩阵对应元素的比较 ? U=max(X,Y)、U=min(X,Y)
? X,Y是两个同型的向量或矩阵,结果U是与X,Y同型的
向量或矩阵,U的每个元素等于X,Y对应元素的较大 (小)者。
? U=max(X,n)、U=min(X,n)
? n是一个标量,结果U是与X同型的向量或矩阵,U的每
个元素等于X对应元素和n中的较大(小)者。
最大值和最小值
求两个2x3的矩阵X,Y所有同一 位置上的较大(小)元素构成 的新矩阵U。 && X=[4 5 6;1 4 8] X= 4 5 6 1 4 8 && Y=[1 7 5;4 5 7] Y= 1 7 5 4 5 7 && U1=max(X,Y) U1 = 4 7 6 4 5 8 && U2=min(X,Y) U2 = 1 5 5 1 4 7
最大值和最小值
&& X=[4 5 6;1 4 8] X= 4 5 6 1 4 8 && n=4.5 n= 4.5000 && U1=max(X,n) U1 = 4.0 4.0 && U2=min(X,n) U2 = 4.0 1.0
求和与求积
? 数据序列求和与求积的函数是sum和prod ? 设X是一个向量,A是一个矩阵
? sum(X):返回向量各元素的和 ? prod(X):返回向量各元素的乘积 ? sum(A):返回一个行向量,其第i个元素是A的第i列的元素和
? prod(A):返回一个行向量,其第i个元素是A的第i列的元素乘积 ? sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时,
返回一个列向量,其第i个元素是A的第i行的各元素和
? prod(A,dim):当dim为1时,该函数等同于prod(A);当dim为2时,
返回一个列向量,其第i个元素是A的第i行的各元素乘积
求和与求积
&& X=[1 2 3 4;5 X= 1 2 3 5 6 7 9 10 11 && S=sum(X) S= 15 18 21 && P=prod(X) P= 45 120 231 6 7 8;9 10 11 12]
&& S2=sum(X,2) 4 && S1=sum(X,1) S2 = 8 S1 = 10 12 15 18 21 24 26 && P1=prod(X,1) 42 P1 = && P2=prod(X,2) 24 45 120 231 384 P2 = 24 80
平均值和中值
? 数据序列平均值是指算术平均值,其函数为mean。中值是指在数据序列中
其值的大小恰好处在中间的元素,其函数为median,若数据序列为奇数个, 则中值的大小恰好处于数据序列各个值的中间,如果为偶数个,则中值等 于中间的两项的平均值。 ? 设X是一个向量,A是一个矩阵 ? mean(X):返回向量X的算术平均值 ? median(X):返回向量X的中值 ? mean(A):返回一个行向量,其第i个元素是A的第i列的算术平均值 ? median(A):返回一个行向量,其第i个元素是A的第i列的中值 ? mean(A,dim):当dim为1时,该函数等同于mean(A);当dim为2时, 返回一个列向量,其第i个元素是A的第i行的算术平均值 ? median(A,dim):当dim为1时,该函数等同于median(A);当dim为2 时,返回一个列向量,其第i个元素是A的第i行的中值
平均值和中值
&& X=[9 -2 5 7 12] X= 9 -2 5 7 && mean(X) ans = 6.2000 && median(X) ans = 7 && Y=[9 -2 5 6 7 12] Y= 9 -2 5 6 7 && mean(Y) ans = 6.1667 && median(Y) ans = 6.5000
累加和与累乘积
? 累加和是指从数据序列的第
一个元素开始直到当前元素进行累加,作为结
果序列的当前元素值。其函数为cumsum。 ? 累乘积是指从数据序列的第一个元素开始直到当前元素进行累乘,作为结 果序列的当前元素值。其函数为cumprod。 ? 设X是一个向量,A是一个矩阵 ? cumsum(X):返回向量X的累加和向量 ? cumprod(X):返回向量X的累乘积向量 ? cumsum(A):返回一个矩阵,其第i列是A的第i列的累加和向量 ? cumprod(A):返回一个矩阵,其第i列是A的第i列的累乘积向量 ? cumsum(A,dim):当dim为1时,该函数等同于cumsum(A);当dim 为2时,返回一个矩阵,其第i行是A的第i行的累加和向量 ? cumprod(A,dim):当dim为1时,该函数等同于cumprod(A);当dim 为2时,返回一个矩阵,其第i行是A的第i行的累乘积向量
累加和与累乘积
&& X=[9 -2 5 7 12] X= 9 -2 5 7 12 && cumsum(X) ans = 9 7 12 19 31 && cumprod(X) ans = 9 -18 -90
累加和与累乘积
&& A=[1 2 3;4 5 6] A= 1 2 3 4 5 6 && cumsum(A) && cumsum(A,2) ans = ans = 1 2 3 1 3 6 5 7 9 4 9 15 && cumprod(A) && cumprod(A,2) ans = ans = 1 2 3 1 2 6 4 10 18 4 20 120
? 在MATLAB中进行排序的函数是sort ? 设X是一个向量,A是一个矩阵 ? sort(X):返回一个对X中的元素按升序排列的新向量 ? sort(A):返回一个对A中的每列元素按升序排列的新矩阵 ? [Y,Z]=sort(X): Y是升序排列后的矩阵,而Z记录了Y中的
元素在A中的位置(单下标的形式)。 ? [Y,Z]=sort(A,dim):当dim为1时,则按列升序排;当dim为 2时,则按行升序排;Y是排序后的矩阵,而Z记录了Y中的 元素在A中的位置(单下标的形式)。
? 在MATLAB中进行排序的函数是sort ? 设X是一个向量,A是一个矩阵 ? sort(X,?descend?):返回一个对X中的元素按降序排列的
新向量 ? sort(A,?descend?):返回一个对A中的每列元素按降序排 列的新向量 ? [Y,Z]=sort(X, ?descend?): Y是降序排列后的矩阵,而Z 记录了Y中的元素在对应列中行的位置。 ? [Y,Z]=sort(A,dim, ?descend?):当dim为1时,则按列降序 排;当dim为2时,则按行降序排;Y是排序后的矩阵,而Z 记录了Y中的元素在行或列中的位置。
&& X=[3 4 5 2 7 3 9 6] X= 3 4 5 2 7 3 && [Y,Z]=sort(X) Y= 2 3 3 4 5 6 Z= 4 1 6 2 3 8 && [Y,Z]=sort(X,'descend') Y= 9 7 6 5 4 3 Z= 7 5 8 3 2 1
&& A=[1 -8 5;4 12 6;13 7 -13] A= 1 -8 5 4 12 6 13 7 -13 && sort(A) ans = 1 -8 -13 4 7 5 13 12 6 && sort(A,'descend') ans = 13 12 6 4 7 5 1 -8 -13
&& [Y,Z]=sort(A,2) Y= -8 1 5 4 6 12 -13 7 13 Z= 2 1 3 1 3 2 3 2 1
&& A=[1 -8 5;4 12 6;13 7 -13] A= 1 -8 5 4 12 6 13 7 -13
&& [Y,Z]=sort(A,2,'descend') Y= 5 1 -8 12 6 4 13 7 -13 Z= 3 1 2 2 3 1 1 2 3
? 在MATLAB中进行排序的函数还有 sortrows ? 设A是一个矩阵
B=sortrows(A):默认依据第
一列的数值按升序移动每一 行,如果第一列的数值有相同的,依次往右比较。 ? B=sortrows(A,column):从某一列开始比较数值并按升序 (column为正数)排序,可以从某一列开始以降序(column为
正数)排列 ? [B,index]=sortrows(A): index为行号索引。
&& X=[10 4 5 2; 7 3 9 6] X= 10 4 5 2 7 3 9 6 && sortrows(X) ans = 7 3 9 6 10 4 5 2 && sortrows(X,3) ans = 10 4 5 2 7 3 9 6
&& sortrows(X,-3) ans = 7 3 9 6 10 4 5 2 && [B,index]=sortrows(X) B= 7 3 9 6 10 4 5 2 index = 2 1
? 在MATLAB中进行降序排序 ? 设X是一个向量,A是一个矩阵 ? -sort(-X):返回一个对X中的元素按降序排列的新向量 ? -sort(-A):返回一个对A中的每列元素按降序排列的新
&& X=[3 4 5 2 7 3 9 6] X= 3 4 5 2 7 && -sort(-X) ans = 9 7 6 5 4
&& A=[1 -8 5;4 12 6;13 7 -13] A= 1 -8 5 4 12 6 && -sort(-A,2) 13 7 -13 ans = && -sort(-A) 5 1 -8 ans = 12 6 4 13 12 6 13 7 -13 4 7 5 1 -8 -13
2.5 基本数学函数
? 函数的主要类别
三角函数 指数运算函数 复数运算函数
? 圆整和求余函数
? 函数在处理参数时,是按照数组运算的规则进
基本数学函数(续)
三角函数 函数
sinh asin asinh cos cosh acos acosh tan
双曲正弦函数 反正弦函数 反双曲正弦函数 余弦函数 双曲余弦函数 反余弦函数 反双曲余弦函数 正切函数
atan atan2 atanh sec sech asec asech csc
双曲正切函数
反正切函数 四象限反正切函数 反双曲正切函数 正割函数 双曲正割函数 反正割函数 双曲反正割函数 余割函数
acsc acsch cot coth acot acoth
双曲余割函数
反余割函数 反双曲余割函数 余切函数 双曲余切函数 反余切函数 反双曲余切函数
基本数学函数(续)
指数运算函数 函数
exp log log10 log2 pow2 指数函数 自然对数函数 常用对数函数 以2为底的对数函数 2的幂函数
realpow reallog realsqrt sqrt nextpow2
实数幂运算函数 实数自然对数函数 实数平方根函数 平方根函数 求大于输入参数的第一个2的幂
基本数学函数(续)
复数运算函数 函数
abs angle complex
求复数的相角 构造复数
求复数的模,若参数为实数则求绝对值
real unwrap isreal
求复数的实部 相位角按照360°线调整 判断输入的参数是否为实数
求复数的共轭复数
求复数的虚部
复数阵成共轭对形式排列
基本数学函数(续)
圆整和求余函数
fix floor ceil round
向0取整的函数 向-∞取整的函数 向+∞取整的函数 向的整数取整的函数
mod rem sign 求模函数 求余数 符号函数
基本数学函数(续)
例:圆整和求余函数 && fix(-1.9) ans = -1 && floor(-1.9) ans = -2
round(-1.9) ans = -2 && ceil(-1.9) ans = -1
基本数学函数(续)
例:圆整和求余函数 && mod(9,-4) ans = -3
&& mod(9,0) ans = 9
mod(x,y):当y≠0时,ans=x-n.*y,n=floor(x./y) 当y=0时,ans=x
基本数学函数(续)
例:圆整和求余函数 && rem(9,-4) ans = 1
&& rem(9,0) ans = NaN
rem(x,y):当y≠0时,ans=x-n.*y,n=fix(x./y) 当y=0时,ans=NaN
基本数学函数(续)
例:圆整和求余函数 && sign(9) ans = sign(*) 1 && sign(0) 若*是正数,则ans为1 ans = 若*是零,则ans为0 0 && sign(-9) 若*是负数,则ans为-1 ans = -1
2.6 多维数组
多维数组:用全下标表示元素时,下标超过了两个的数组
第一维――行(Row) 第二维――列(Column)
第三维――页(Page)
第四维――箱(Box) 三维数组的每一页上的数组必须具有同样的行数和列数
介绍的内容
创建多维数组
创建多维数组
? 使用直接赋值的方法创建多维数组 ? 使用MATLAB函数创建多维数组
1、使用直接赋值的方法创建多维数组
例 && A=pascal(4) A= 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 && A(:,:,2)=eye(4) A(:,:,1) = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 A(:,:,2) = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 && A(:,:,3)=magic(5)
??? Subscripted assignment dimension mismatch.
使用直接赋值的方法创建多维数组(续)
例 && B(3,3,3)=1 B(:,:,1) = 0 0 0 0 0 0 B(:,:,2) = 0 0 0 0 0 0 B(:,:,3) = 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1
使用直接赋值的方法创建多维数组(续)
例 && A(2,1,3)=5 ?
使用直接赋值的方法创建多维数组(续)
例 && A(2,1,3)=5 A(:,:,1) = 0 0 A(:,:,2) = 0 0 A(:,:,3) = 0 5
2、使用函数创建多维数组
例 && rand(3,3,3) ans(:,:,1) = 0.0 0.3 0.1 ans(:,:,2) = 0.8 0.2 0.3 ans(:,:,3) = 0.9 0.2 0.9
0.5 0.7 0.9 0.8 0.1987
使用函数创建多维数组(续)
例 && ones(3,3,3) ans(:,:,1) = 1 1 1 1 1 1 1 1 1 ans(:,:,2) = 1 1 1 1 1 1 1 1 1 ans(:,:,3) = 1 1 1 1 1 1 1 1 1
使用函数创建多维数组(续)
使用cat函数创建多维数组:cat(dim,A,B,C,…) dim是将A、B、C、…合并时所用到的维数 ? dim =1时,将数组上下(垂直)排列。 即cat(1,A,B)相当于[A;B] ? dim =2时,将数组左右(水平)排列。 即cat(2,A,B)相当于[A,B] ? dim =3时,将数组重叠排成三维数组。 即cat(3,A,B)创建三维数组 ? dim =4时,将数组重叠排成四维数组。 即cat(4,A,B)创建四维数组
使用函数创建多维数组(续)
例 && A=magic(3) A= 8 1 6 3 5 7 4 9 2 && B=eye(3) B= 1 0 0 0 1 0 0 0 1 && C=pascal(3) C= 1 1 1 1 2 3 1 3 6
&&cat(1,A,B,C) ans = 8 1 6 3 5 7 4 9 2 1 0 0 0 1 0 0 0 1 1 1 1 1 2 3 1 3 6 && cat(2,A,B,C) ans = 8 1 6 1 0 0 1 1 1 3 5 7 0 1 0 1 2 3 4 9 2 0 0 1 1 3 6
&& cat(3,A,B,C) ans(:,:,1) = 8 1 6 3 5 7 4 9 2 ans(:,:,2) = 1 0 0 0 1 0 0 0 1 ans
(:,:,3) = 1 1 1 1 2 3 1 3 6
3.访问多维数组
访问多维数组的元素和访问向量或者矩阵元 素的方法一致,可以使用相应的索引作为下 标访问多维数组的元素,也可以使用单下标 的方式来访问
访问多维数组(续)
&& [i,j,k]=ind2sub(size(A),8) 例 && A=rand(3,3,2) i= A(:,:,1) = 2 0.6 0.6822 j= 0.7 0..4 0.5417 k= A(:,:,2) = 1 0.0 0.9 0.8 0.6 0.8216 && sub2ind(size(A),2,3,2) ans = 17
访问多维数组(续)
&& ind2sub(size(A),8) ?
访问多维数组(续)
&& ind2sub(size(A),8) ans = 8
访问多维数组(续)
&& ind2sub(size(A),8) ans = 8 如果将单下标向双下标转换不给输出参数,转 换得到的结果还是单下标。
Matlab实训1-向量、矩阵的运算相关文章
《》由(在点网)整理提供,版权归原作者、原出处所有。
Copyright &
All Rights Reserved.}

我要回帖

更多关于 http参数sign加密 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信