暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

第3章 数组与矩阵——3.1 数组运算(1)

软件开发架构 2023-04-26
254
第3章  数组与矩阵


知识要点

MATLAB中的所有数据都按照数组的形式进行存储和运算,数组的属性及数组之间的逻辑关系是编写程序时非常重要的两个方面。在MATLAB平台上,数组的定义是广义的,数组的元素可以是任意数据类型,如数值、字符串等。矩阵是特殊的数组,在很多工程领域,都会遇到矩阵分析和线性方程组的求解等问题。本章的主要内容是对矩阵和数组进行深入讲解,以及关于矩阵和数组的复杂运算的应用。

学习要求




3.1  数组运算(1)



数组运算是MATLAB计算的基础。由于MATLAB面向对象的特性,这种数值数组成为MATLAB最重要的一种内建数据类型,而数组运算就是定义这种数据结构的方法。本节将系统地列出具备数组运算能力的函数名称,为兼顾一般性,以二维数组的运算为例,读者可推广至多维数组和多维矩阵的运算。

下面介绍在MATLAB中如何创建数组,以及数组的常用操作等,包括数组的算术运算、关系运算和逻辑运算。


3.1.1  数组的创建和操作


MATLAB中一般使用方括号“[ ]”、逗号“,”、空格和分号“;”来创建数组,数组中同一行的元素使用逗号或空格进行分隔,不同行之间用分号进行分隔。


3-1:创建空数组、行向量、列向量示例。

在命令行窗口中依次输入:

clear all

A = []

B = [6 5 4 3 2 1]

C = [6,5,4,3,2,1]

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

E = B'    % 转置

输出结果:

A =


     []



B =


     6     5     4     3     2     1



C =


     6     5     4     3     2     1



D =


     6

     5

     4

     3

     2

     1



E =


     6

     5

     4

     3

     2

     1


3-2:访问数组示例。

在命令行窗口中依次输入:

clear all

A = [6 5 4 3 2 1]

a1 = A(1)            % 访问数组中的第1个元素

a2 = A(1:3)           % 访问数组中的第123个元素

a3 = A(3:end)         % 访问数组中的第3个到最后一个元素

a4 = A(end:-1:1)      % 数组元素反序输出

a5 = A([ 1 6 ])          % 访问数组中的第1个及第6个元素

输出结果:

A =


     6     5     4     3     2     1



a1 =


     6



a2 =


     6     5     4



a3 =


     4     3     2     1



a4 =


     1     2     3     4     5     6



a5 =


     6     1


3-3:子数组的赋值示例。

在命令行窗口中依次输入:

clear all

A = [6 5 4 3 2 1]

A(3) = 0

A([1 4]) = [1 1]

输出结果:

A =


     6     5     4     3     2     1



A =


     6     5     0     3     2     1



A =


     1     5     0     1     2     1


MATLAB中还可以通过其他各种方式创建数组,具体如下所示。


1.通过冒号创建一维数组


MATLAB中,通过冒号创建一维数组的代码如下:

X = A : step : B

其中,A是创建一维数组的第一个变量,step是每次递增或递减的数值,直到最后一个元素和B的差的绝对值小于或等于step的绝对值为止。


3-4:通过冒号创建一维数组示例。

在命令行窗口中依次输入:

clear all

A = 2 : 6

B = 2.1 : 1.5 : 6

C = 2.1 : -1.5 : -6

D = 2.1 : -1.5 : 6

输出结果:

A =


     2     3     4     5     6



B =


    2.1000    3.6000    5.1000



C =


    2.1000    0.6000   -0.9000   -2.4000   -3.9000   -5.4000



D =


  空的 1×0 double 行向量


2.通过logspace()函数创建一维数组


MATLAB中常用logspace()函数创建一维数组,该函数的调用方式如下。

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

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


3-5:通过logspace()函数创建一维数组示例。

在命令行窗口中依次输入:

clear all

format short;

A = logspace(1,2,20)

B = logspace(1,2,10)

输出结果:

A =


  1 13


   10.0000   11.2884   12.7427   14.3845   16.2378   18.3298   20.6914   23.3572   26.3665   29.7635   33.5982   37.9269   42.8133


  14 20


   48.3293   54.5559   61.5848   69.5193   78.4760   88.5867  100.0000



B =


   10.0000   12.9155   16.6810   21.5443   27.8256   35.9381   46.4159   59.9484   77.4264  100.0000


3.通过linspace()函数创建一维数组


MATLAB中常用linspace()函数创建一维数组,该函数的调用方式如下。

● y=linspace(a,b):该函数创建行向量y,第一个元素为a,最后一个元素为b,形成总数为100个元素的线性间隔向量。

● y=linspace(a,b,n):该函数创建行向量y,第一个元素为a,最后一个元素为b,形成总数为n个元素的线性间隔向量。


3-6:通过linspace()函数创建一维数组示例。

在命令行窗口中依次输入:

clear all

format short;

A = linspace(1,100)

B = linspace(1,36,12)

C = linspace(1,36,1)

输出结果:

A =


  1 21


     1     2     3     4     5     6     7     8     9    10    11    12    13    14    15    16    17    18    19    20    21


  22 42


    22    23    24    25    26    27    28    29    30    31    32    33    34    35    36    37    38    39    40    41    42


  43 63


    43    44    45    46    47    48    49    50    51    52    53    54    55    56    57    58    59    60    61    62    63


  64 84


    64    65    66    67    68    69    70    71    72    73    74    75    76    77    78    79    80    81    82    83    84


  85 100


    85    86    87    88    89    90    91    92    93    94    95    96    97    98    99   100



B =


    1.0000    4.1818    7.3636   10.5455   13.7273   16.9091   20.0909   23.2727   26.4545   29.6364   32.8182   36.0000



C =


    36


如果大家需要这个文档,可以在我的公众号(软件开发架构)中回复20230426,免费获取。



文章转载自软件开发架构,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论