MATLAB中的数组

数组的创建和操作

        1、直接赋值创建

>> A=[]                     % 创建一个空数组
A =
     []
>> B=[1 2 3 4]              % 元素之间使用空格隔开,创建一维数组
B =
     1     2     3     4
>> C=[1,2,3,4]              % 元素之间使用 “,” 隔开,创建一维数组
C =
     1     2     3     4
>> D=['a';'b';'c']          % 元素之间使用 “;” 隔开,创建二维数组
D =
a
b
c
>> E=B'                     % 数组变量后加 “ ' ” 可实现转置
E =
     1
     2
     3
     4

        2、通过冒号创建一维数组

>> A=1:4                    % 数组元素从1到4,每次变化1
A =
     1     2     3     4
>> B=2:3:10                 % 数组元素从2到10,每次变化3
B =
     2     5     8
>> C=10:-3:0                % 数组元素从10到0,每次变化-3
C =
    10     7     4     1

        3、通过logspace函数创建一维数组

        y=logspace(a,b):该函数创建行向量y,第一个元素为10^a,最后一个元素为10^b,形成总数为50个元素的等比数列。

        y=logspace(a,b,n):该函数创建行向量y,第一个元素为10^a,最后一个元素为10^b,形成总数为n个元素的等比数列。

>> y=logspace(1,2)        % 创建10^1到10^2之间,共50个元素的等比数列
y =
  1 至 7 列
   10.0000   10.4811   10.9854   11.5140   12.0679   12.6486   13.2571
  8 至 14 列
   13.8950   14.5635   15.2642   15.9986   16.7683   17.5751   18.4207
  15 至 21 列
   19.3070   20.2359   21.2095   22.2300   23.2995   24.4205   25.5955
  22 至 28 列
   26.8270   28.1177   29.4705   30.8884   32.3746   33.9322   35.5648
  29 至 35 列
   37.2759   39.0694   40.9492   42.9193   44.9843   47.1487   49.4171
  36 至 42 列
   51.7947   54.2868   56.8987   59.6362   62.5055   65.5129   68.6649
  43 至 49 列
   71.9686   75.4312   79.0604   82.8643   86.8511   91.0298   95.4095
  50 列
  100.0000
>> y=logspace(1,2,20)     % 创建10^1到10^2之间,共20个元素的等比数列
y =
  1 至 7 列
   10.0000   11.2884   12.7427   14.3845   16.2378   18.3298   20.6914
  8 至 14 列
   23.3572   26.3665   29.7635   33.5982   37.9269   42.8133   48.3293
  15 至 20 列
   54.5559   61.5848   69.5193   78.4760   88.5867  100.0000

        4、通过linspace函数创建一维数组

        y=linspace(a,b):该函数创建行向量y,第一个元素为a,最后一个元素为b,形成总数为100个元素的等差数列。

        y=linspace(a,b,n):该函数创建行向量y,第一个元素为a,最后一个元素为b,形成总数为n个元素的等差数列。

>> y=linspace(1,50)     % 创建从1到50,元素个数为100的等差数列
y =
  1 至 7 列
    1.0000    1.4949    1.9899    2.4848    2.9798    3.4747    3.9697
  8 至 14 列
    4.4646    4.9596    5.4545    5.9495    6.4444    6.9394    7.4343
  15 至 21 列
    7.9293    8.4242    8.9192    9.4141    9.9091   10.4040   10.8990
  22 至 28 列
   11.3939   11.8889   12.3838   12.8788   13.3737   13.8687   14.3636
  29 至 35 列
   14.8586   15.3535   15.8485   16.3434   16.8384   17.3333   17.8283
  36 至 42 列
   18.3232   18.8182   19.3131   19.8081   20.3030   20.7980   21.2929
  43 至 49 列
   21.7879   22.2828   22.7778   23.2727   23.7677   24.2626   24.7576
  50 至 56 列
   25.2525   25.7475   26.2424   26.7374   27.2323   27.7273   28.2222
  57 至 63 列
   28.7172   29.2121   29.7071   30.2020   30.6970   31.1919   31.6869
  64 至 70 列
   32.1818   32.6768   33.1717   33.6667   34.1616   34.6566   35.1515
  71 至 77 列
   35.6465   36.1414   36.6364   37.1313   37.6263   38.1212   38.6162
  78 至 84 列
   39.1111   39.6061   40.1010   40.5960   41.0909   41.5859   42.0808
  85 至 91 列
   42.5758   43.0707   43.5657   44.0606   44.5556   45.0505   45.5455
  92 至 98 列
   46.0404   46.5354   47.0303   47.5253   48.0202   48.5152   49.0101
  99 至 100 列
   49.5051   50.0000
>> y=linspace(1,50,10)  % 创建从1到50,元素个数为10的等差数列
y =
  1 至 7 列
    1.0000    6.4444   11.8889   17.3333   22.7778   28.2222   33.6667
  8 至 10 列
   39.1111   44.5556   50.0000

数组的常见运算

        1、数组的算术运算

        在MATLAB中,一维数组的算术运 算包括加、减、乘、左除、右除和乘方。

        如果两个数组的维数不相同,则将给出错误的信息。

        如运算符为 + ,- ,.* ,./ ,.\  ,.^ 则将数组的每个元素对应计算。

        右除和左除的关系:A./B=B.\A,其中A是被除数,B是除数。

        如运算符为 * ,/ 则等效于矩阵的乘除运算(此时数组元素必须符合矩阵运算的规则)。

        2、点积运算(dot 函数) 

        语法1:C = dot ( A , B )

        说明:返回 A 和 B 的标量点积。如果 A 和 B 是向量,则它们的长度必须相同。如果 A 和 B 为矩阵或多维数组,则它们必须具有相同大小。

>> A = [4 -1 2];
>> B = [2 -2 -1];
>> C = dot(A,B)    % 计算规则:C = A(1)*B(1) + A(2)*B(2) + A(3)*B(3)
c=
8
>> A = [1 2 3;4 5 6;7 8 9];
>> B = [9 8 7;6 5 4;3 2 1];
>> C = dot(A,B)        % 计算规则:C(1) = 54 是 A(:,1) 与 B(:,1) 的点积
                       % 即矩阵的第 1 列依次相乘后求和
C = 
   54    57    54

        语法2:C = dot ( A , B , dim )

        说明:计算 A 和 B 沿维度 dim 的点积。dim 输入是一个正整数标量。dim为 1 时,计算并返回对应列的点积。dim为 2 时,计算并返回对应行的点积。

>> A = [1 2 3;4 5 6;7 8 9];
>> B = [9 8 7;6 5 4;3 2 1];
>> C = dot(A,B,1)      % 计算规则:C(1) = 54 是 A(:,1) 与 B(:,1) 的点积
                       %          即 A、B 矩阵的第 1 列依次相乘后求和
C = 
   54    57    54
>> D = dot(A,B,2)      % 计算规则:D(1) = 46 是 A(1,:) 与 B(1,:) 的点积。
                       %          即 A、B 矩阵的第 1 行依次相乘后求和
D = 
    46
    73
    46

         3、数组的关系运算

        逐一比较两个数组相同位置的元素,并给出比较结果。最终的关系运算结果是一个与参与比较的数组维数相同的数组,其组成元素为0或1。

>> A=[ 1 5 6 8 9 6 ] ;
>> B=[ 9 5 6 2 4 0 ] ;
>> C=A<B
C=
    1    0    0    0    0    0

        4、数组的逻辑运算

        逐一比较两个数组相同位置的元素,并给出比较结果。最终的逻辑运算结果是一个与参与比较的数组维数相同的数组,其组成元素为0或1。 

>> A=[ 1 5 6 8 9 6 ] ;
>> B=[ 9 5 6 2 4 0 ] ;
>> C=A&B
C=
    1    1    1    1    1    0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值