如何获得矩阵的大小?

时间:2017-04-22 07:49:56

标签: python matlab numpy

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

[rwn1 rwn2]=size(rtt)

然后你会知道它在矩阵中有多少行和列,称为" rtt"从code.But我想将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),有没有高手可以帮我解决这个问题?

3 个答案:

答案 0 :(得分:0)

您创建了一维数组。

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)

答案 1 :(得分:0)

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

    rtt = rtt.reshape(1,-1)

获取行矩阵。我想你会发现这个文档页面很有帮助:

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

答案 2 :(得分:0)

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

>>> 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]])
>>>