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/program/matlab-function-size.html

(1)
上一篇 2021年04月19日 22:23
下一篇 2021年04月21日 21:09

相关推荐

  • Matlab使用fmesh函数绘制三维网格图

    文章目录(展开/隐藏→) 展开常见用法用法说明表达式的三维网格图参数化网格图指定网格图区间并绘制分段输入指定网格图属性 4.3 (3) 今天,给大家带来Matlab中使用fmesh…

    2021年02月22日
    086
  • Matlab网格曲面图绘制函数mesh用法

    文章目录(展开/隐藏→) 展开常见用法语法说明创建网格图为网格图指定颜色图颜色为网格图指定真彩色修改网格图外观 4 (2) 今天,来给大家讲解下Matlab中的网格曲面图绘制函数m…

    2021年02月14日
    0167
  • Matlab快速入门之线性代数:特征值

    文章目录(展开/隐藏→) 展开特征值的分解多重特征值Schur 分解 4.3 (3) 本文属于Matlab快速入门之线性代数的第四篇,即特征值,主要包括特征值的分解、多重特征值、S…

    2022年09月26日
    018
  • Matlab水平条形图创建函数barh教程

    文章目录(展开/隐藏→) 展开常见用法语法说明显示一个条形序列显示具有轴标签和图例的四个条形序列更改基准值显示具有负数据的堆叠条形自定义垂直轴刻度标签指定分类数据在条形末端添加标签…

    2020年11月29日
    047
  • Matlab颜色光照曲面图函数surfl用法

    文章目录(展开/隐藏→) 展开常见用法语法说明创建具有基于颜色图的光照的曲面图使用光源对象创建曲面图指定曲面图的光源方向和反射 4.3 (3) 今天,继续讲解Matlab中的曲面图…

    2021年02月03日
    051
  • Matlab三维散点图绘制函数scatter3

    文章目录(展开/隐藏→) 展开常见用法语法说明创建三维散点图改变标记大小改变标记颜色填充标记设置标记类型设置标记属性指定三维散点图的坐标区使用句柄设置散点序列属性 3.3 (4) …

    2020年11月10日
    0226

发表回复

登录后才能评论
本站APP