Matlab使用size函数获取目标数组的尺寸

4.5
(4)

今天,给大家带来Matlab中比较常用的size函数,size函数用于获取数组、矩阵等的尺寸,即获取数组的行数、列数等尺寸。我们不仅可以单独获取矩阵的行数,列数,也可以同时输出矩阵的行数及列数。本文,主要讲解Matlabsize函数的常见用于、语法说明、四维数组的大小、表大小、使用单独的参数返回各个维度长度。

Matlab使用size函数获取目标数组的尺寸

下面,我们首先给出Matlab中关于size函数的帮助文档如下:

>> help size
 size   Size of array.  
    D = size(X), for M-by-N matrix X, returns the two-element row vector
    D = [M,N] containing the number of rows and columns in the matrix.
    For N-D arrays, size(X) returns a 1-by-N vector of dimension lengths.
    Trailing singleton dimensions are ignored.
 
    [M,N] = size(X) for matrix X, returns the number of rows and columns in
    X as separate output variables. 
    
    [M1,M2,M3,...,MN] = size(X) for N>1 returns the sizes of the first N 
    dimensions of the array X.  If the number of output arguments N does
    not equal NDIMS(X), then for:
 
    N > NDIMS(X), size returns ones in the "extra" variables, i.e., outputs
                  NDIMS(X)+1 through N.
    N < NDIMS(X), MN contains the product of the sizes of dimensions N
                  through NDIMS(X).
 
    M = size(X,DIM) returns the length of the dimension specified
    by the scalar DIM.  For example, size(X,1) returns the number
    of rows. If DIM > NDIMS(X), M will be 1.
 
    When size is applied to a Java array, the number of rows
    returned is the length of the Java array and the number of columns
    is always 1.  When size is applied to a Java array of arrays, the
    result describes only the top level array in the array of arrays.
 
    Example:
    If
       X = rand(2,3,4);
    then
       d = size(X)              returns  d = [2 3 4]
       [m1,m2,m3,m4] = size(X)  returns  m1 = 2, m2 = 3, m3 = 4, m4 = 1
       [m,n] = size(X)          returns  m = 2, n = 12
       m2 = size(X,2)           returns  m2 = 3

常见用法

sz = size(A)
szdim = size(A,dim)
szdim = size(A,dim1,dim2,…,dimN)
[sz1,...,szN] = size(___)

语法说明

sz = size(A)返回一个行向量,其元素是A的相应维度的长度。例如,如果A是一个3×4矩阵,则size(A)返回向量[3 4]

如果A是表或时间表,则size(A)返回由表中的行数和变量数组成的二元素行向量。

dim为正整数标量时,szdim = size(A,dim)返回维度dim的长度。从R2019b开始,您还可以将dim指定为正整数向量,以一次查询多个维度长度。例如,size(A,[2 3])1×2行向量szdim形式返回A的第二个维度和第三个维度的长度。

szdim = size(A,dim1,dim2,…,dimN)以行向量szdim形式返回维度dim1,dim2,…,dimN的长度(从R2019b开始)。

[sz1,…,szN] = size(_)分别返回A的查询维度的长度。

四维数组的大小

创建一个随机四维数组并返回其大小。

A = rand(2,3,4,5);
sz = size(A)

输出结果如下:

sz =

     2     3     4     5

仅查询A的第二个维度的长度。

szdim2 = size(A,2)

输出结果如下:

szdim2 =

     3

R2019b开始,您可以通过指定向量维度参数,一次查询多个维度长度。例如,求A的第一个维度和第三个维度的长度。

szdim13 = size(A,[1 3])

由于我这里用的是Matlab 2016,不支持这种写法。以上代码的输出结果如下:

szdim13 = 

     2     4

当然,如果是2016版本,我们可以分开写,代码如下:

>> sidim1 = size(A,1)

sidim1 =

     2

>> sidim2 = size(A,3)

sidim2 =

     4

A的第二个维度至第四个维度的长度。

szdim23 = size(A,2:4)

当然,这个写法在Matlab 2016中依旧不支持,不过还是可以单独从24单独求一下size

szdim23 = 

     3     4     5

您也可以使用单独的输入参数列出查询的各个维度。当然,这种Matlab 2016也不支持

szdim23 = size(A,2,3,4);

Matlab 2016版本只支持以下这种写法:

>> sidim2 = size(A,2)

sidim2 =

     3

>> sidim3 = size(A,3)

sidim3 =

     4

>> sidim4 = size(A,4)

sidim4 =

     5

表大小

创建一个包含5行和4个变量的表。

LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];

A = table(Age,Height,Weight,BloodPressure,'RowNames',LastName)

输出如下结果:

A = 

                Age    Height    Weight    BloodPressure
                ___    ______    ______    _____________

    Smith       38     71        176       124     93   
    Johnson     43     69        163       109     77   
    Williams    38     64        131       125     83   
    Jones       40     67        133       117     75   
    Brown       49     64        119       122     80  

计算该表的大小。尽管BloodPressure变量包含两列,但size只计算变量数。

sz = size(A)
>> sz = size(A)

sz =

     5     4
Matlab使用size函数获取目标数组的尺寸

使用单独的参数返回各个维度长度

创建一个随机矩阵,并分别返回行数和列数。

A = rand(4,3);
[numRows,numCols] = size(A)

输出结果如下:

numRows =

     4


numCols =

     3

这可能也是最常用的方法了吧。

共计4人评分,平均4.5

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

文章目录

转载文章,原文出处:MathWorks官网,由古哥整理发布

如若转载,请注明出处:https://iymark.com/articles/2407.html

(1)
微信公众号
古哥的头像古哥管理团队
上一篇 2021年04月19日 22:23
下一篇 2021年04月21日 21:09

你可能感兴趣的文章

发表回复

登录后才能评论
微信小程序
微信公众号