【问题标题】:How to get the size of a matrix?如何获得矩阵的大小?
【发布时间】:2017-04-22 07:49:55
【问题描述】:

最近,我有一个项目需要知道矩阵的大小。 这是一段matlab代码。

[rwn1 rwn2]=size(rtt)

然后你会从代码中知道它在名为“rtt”的矩阵中有多少行和列。但是我想将matlab代码转换为python,我也创建了一个这样的python代码

import numpy as np
rtt=np.array([1,2,3,4,5,6,7,8,9,10])
rtt.shape

它只打印了 (10,) 它没有打印行数,只打印列数。 我想要的结果是(10,1),有没有高手可以帮我解决这个问题?

【问题讨论】:

  • 对不起,有一点我忘了说,矩阵[1,2,3...]是假设的,实际情况是矩阵是从excel导入的。

标签: python matlab numpy


【解决方案1】:

numpy 和 matlab 之间存在一些差异,这对新用户来说可能很烦人。其中之一就是这个;你需要做的

    rtt = rtt.reshape(1,-1)

得到一个行矩阵。我认为您会发现此文档页面很有帮助:

https://docs.scipy.org/doc/numpy-dev/user/numpy-for-matlab-users.html

【讨论】:

    【解决方案2】:

    您可以更改形状,但只需确保行/列顺序是您想要的:

    >>> rtt = np.array([1,2,3,4,5,6,7,8,9,10])
    >>> rtt
    array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
    >>> rtt.shape
    (10,)
    

    你说你想要(10,1)

    >>> rtt.shape = (10,1)
    >>> rtt
    array([[ 1],
           [ 2],
           [ 3],
           [ 4],
           [ 5],
           [ 6],
           [ 7],
           [ 8],
           [ 9],
           [10]])
    

    但也许(1,10) 是你想要的:

    >>> rtt.shape = (1,10)
    >>> rtt
    array([[ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10]])
    

    如果你想要(2,5),请自助:

    >>> rtt.shape = (2,5)
    >>> rtt
    array([[ 1,  2,  3,  4,  5],
           [ 6,  7,  8,  9, 10]])
    >>> 
    

    【讨论】:

      【解决方案3】:

      你被创建了一个一维数组。

      import numpy as np  
      rtt=np.array([[1,2,3,4,5,6,7,8,9,10]]) 
      #rtt=np.array([1,2,3,4,5,6,7,8,9,10],ndmin=2) another way
      rtt.shape #(1, 10)
      

      如果你想要(列,行)格式,那么

      rtt.shape[::-1] #(10, 1)
      

      【讨论】:

      • 非常感谢!它有效,但真正的数组数据来自 excel。我认为该方法仅适用于我创建的假设矩阵。
      • 你可以使用openpyxl从excel中提取数据
      • 再次感谢您!我已经解决了这个问题。当我从 excel 导入数据时,它也能很好地工作。
      猜你喜欢
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 2011-08-07
      • 2011-02-10
      • 2014-10-26
      • 2011-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多