matlab二维数组的创建及其变换

您所在的位置:网站首页 matlab跳过空值将二维数组转成一维数组 matlab二维数组的创建及其变换

matlab二维数组的创建及其变换

2024-07-12 22:56| 来源: 网络整理| 查看: 265

很基础的问题,但很容易忘记。。

1、MATLAB中,一般使用方括号([]),逗号(,),分号(;)与空格来创建二维数组。空数组是一种非常特殊的数组,没有任何元素。创建一个空数组:只要把一个方括号复制给一个变量就可以了。

在这里插入图片描述

2、在MATLAB中,创建二维数组可以使用空格+分号的形式。每一行的各个元素使用空格隔开,换行时使用分号隔开。需要注意的是,每一行的元素个数需要相同,不相同的情况下容易报错。

在这里插入图片描述

3、在MATLAB中,也可以使用逗号+分号的形式创建数组。每一行的各个元素使用逗号隔开,换行时使用分号隔开。每一行的元素个数需要相同,如果每一行的元素个数不同,MATLAB会报错。

在这里插入图片描述

4、在MATLAB中,可以使用冒号创建数组。A=a:b表示从实数a到实数b创建一个间隔为1的数组A。使用上述方式创造的数组A是一维数组,也可以被叫做行向量。数组A相邻两个元素的差值默认为1。 在这里插入图片描述

5、也可以使用一种更加自由的方式,创建间距固定的递增或递减数组。A=a🅱️c表示从实数a到实数b以间隔为c递增或者递减,创造出数组A。使用这种方法创建数组时,数组A的第一个元素与最后一个元素分别是a和b,数组相邻两个元素之间的差值为c。 在这里插入图片描述

维数组实际上也是一个矩阵。应此直接创建一个矩阵就行。创建的方法你应该会吧,就是直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。所有元素处于一方括号([ ])内。 比如,创建一个3×5的矩阵(对应3×5的二维数组) A = [12 62 93 -8 22; 16 2 87 43 91; -4 17 -72 95 6] A = 12 62 93 -8 22 16 2 87 43 91 -4 17 -72 95 6 当然也可以用专门用来创建多维数组的cat函数来创建。 具体如下: 函数 cat 格式 A=cat(n,A1,A2,…,Am) 说明 n=1和n=2时分别构造[A1;A2]和[A1,A2],都是二维数组,而n=3时可以构造出三维数组。 例如:

A1=[1,2,3;4,5,6;7,8,9];A2=A1’; A3=cat(2,A1,A2) A3 = 1 2 3 1 4 7 4 5 6 2 5 8 7 8 9 3 6 9 这样A3就是一个二维数组 此外还有诸如特殊矩阵的创建方法等 这里就不列举了 你可以百度 或者Google一下 二维数组的变换我还不太确定你的意思: 这里就提供几个矩阵的操作: 1.矩阵的变维 矩阵的变维有两种方法,即用“:”和函数“reshape”,前者主要针对2个已知维数矩阵之间的变维操作;而后者是对于一个矩阵的操作。 (1)“:”变维 例1-48 A=[1 2 3 4 5 6;6 7 8 9 0 1] A = 1 2 3 4 5 6 6 7 8 9 0 1

B=ones(3,4) B = 1 1 1 1 1 1 1 1 1 1 1 1

B(:)=A(😃 B = 1 7 4 0 6 3 9 6 2 8 5 1 (2)Reshape函数变维 格式 B = reshape(A,m,n) %返回以矩阵A的元素构成的m×n矩阵B B = reshape(A,m,n,p,…) %将矩阵A变维为m×n×p×… B = reshape(A,[m n p…]) %同上 B = reshape(A,siz) %由siz决定变维的大小,元素个数与A中元素个数 相同。 矩阵变维例子:

a=[1:12]; b=reshape(a,2,6) b = 1 3 5 7 9 11 2 4 6 8 10 12 2.矩阵的变向 (1)矩阵旋转 函数 格式 B = rot90 (A) %将矩阵A逆时针方向旋转90° B = rot90 (A,k) %将矩阵A逆时针方向旋转(k×90°),k可取正负整数。 例如:

A=[1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9

Y1=rot90(A),Y2=rot90(A,-1) Y1 = %逆时针方向旋转 3 6 9 2 5 8 1 4 7 Y2 = %顺时针方向旋转 7 4 1 8 5 2 9 6 3 (2)矩阵的左右翻转 函数 fliplr 格式 B = fliplr(A) %将矩阵A左右翻转 (3)矩阵的上下翻转 函数 flipud 格式 B = flipud(A) %将矩阵A上下翻转 例如:

A=[1 2 3;4 5 6] A = 1 2 3 4 5 6

B1=fliplr(A),B2=flipud(A) B1 = 3 2 1 6 5 4 B2 = 4 5 6 1 2 3 (4)按指定维数翻转矩阵 函数 flipdim 格式 B = flipdim(A,dim) % flipdim(A,1) = flipud(A),并且flipdim(A,2)=fliplr(A)。 例如

A=[1 2 3;4 5 6] A = 1 2 3 4 5 6

B1=flipdim(A,1),B2=flipdim(A,2) B1 = 4 5 6 1 2 3 B2 = 3 2 1 6 5 4 (5)复制和平铺矩阵 函数 repmat 格式 B = repmat(A,m,n) %将矩阵A复制m×n块,即B由m×n块A平铺而成。 B = repmat(A,[m n]) %与上面一致 B = repmat(A,[m n p…]) %B由m×n×p×…个A块平铺而成 repmat(A,m,n) %当A是一个数a时,该命令产生一个全由a组成的m×n矩阵。 例如

A=[1 2;5 6] A = 1 2 5 6

B=repmat(A,3,4) B = 1 2 1 2 1 2 1 2 5 6 5 6 5 6 5 6 1 2 1 2 1 2 1 2 5 6 5 6 5 6 5 6 1 2 1 2 1 2 1 2 5 6 5 6 5 6 5 6 3.矩阵元素的数据变换 对于小数构成的矩阵A来说,如果我们想对它取整数,有以下几种方法: (1)按-∞方向取整 函数 floor 格式 floor(A) %将A中元素按-∞方向取整,即取不足整数。 (2)按+∞方向取整 函数 ceil 格式 ceil(A) %将A中元素按+∞方向取整,即取过剩整数。 (3)四舍五入取整 函数 round 格式 round (A) %将A中元素按最近的整数取整,即四舍五入取整。 (4)按离0近的方向取整 函数 fix 格式 fix (A) %将A中元素按离0近的方向取整 例如:

A=-1.5+4*rand(3) A = 2.3005 0.4439 0.3259 -0.5754 2.0652 -1.4260 0.9274 1.5484 1.7856

B1=floor(A),B2=ceil(A),B3=round(A),B4=fix(A) B1 = 2 0 0 -1 2 -2 0 1 1 B2 = 3 1 1 0 3 -1 1 2 2 B3 = 2 0 0 -1 2 -1 1 2 2 B4 = 2 0 0 0 2 -1 0 1 1 (5)矩阵的有理数形式 函数 rat 格式 [n,d]=rat (A) %将A表示为两个整数矩阵相除,即A=n./d。 例如: 对于上例中的A

[n,d]=rat(A) n = 444 95 131 -225 2059 -472 166 48 1491 d = 193 214 402 391 997 331 179 31 835 (6)矩阵元素的余数 函数 rem 格式 C = rem (A, x) %表示A矩阵除以模数x后的余数。若x=0,则定义rem(A, 0)=NaN,若x≠0,则整数部分由fix(A./x)表示,余数C=A-x.*fix (A./x)。允许模x为小数。 如果还不详细 你就查阅帮助,上面有很详细的解答

书上有的吧 刘卫国第二版的《MATLAB程序设计与应用》说得很清楚



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3