python工作区像matlab_类似Matlab的Python结构

在八度音阶中我做到了:octave:2> x.a = 1;

octave:3> x.b = [1, 2; 3, 4];

octave:4> x.c = "string";

octave:7> save -7 test.mat x

在ipython(2.7)中:

^{pr2}$

在本例中,A['x']是一个numpy结构的数组,有3个dtype=object字段。在In [33]: A['x']['b'][0,0]

Out[33]:

array([[ 1., 2.],

[ 3., 4.]])

In [34]: A['x'][0,0]

Out[34]: ([[1.0]], [[1.0, 2.0], [3.0, 4.0]], [u'string'])

In [35]: A['x'][0,0]['b']

Out[35]:

array([[ 1., 2.],

[ 3., 4.]])

因为x来自MATLAB,所以我必须用[0,0]来索引它。在octave:9> size(x)

ans =

1 1

我可以用不同的开关加载A,并使用.b格式访问属性:In [62]: A=loadmat('test.mat',struct_as_record=False)

In [63]: A['x'][0,0].b

Out[63]:

array([[ 1., 2.],

[ 3., 4.]])

在本例中,A['x']的元素属于类型

一些历史可能会有所帮助。MATLAB最初只有二维矩阵。然后他们把它扩展到更高的维度。cells被添加,具有相同的2d字符,但允许不同的内容。structures已添加,允许“命名”属性。最初的MATLAB类系统是建立在结构上的(只是将某些函数链接到特定的类结构上)。MATLAB现在已经进入了它的第二代类系统。在

Python从类、字典和列表开始。对象属性的访问使用与MATLAB结构相同的.语法。带键的字典(通常,但不总是字符串)。用整数索引的列表,并且总是允许不同的内容(比如cells)。有了成熟的对象类系统,就可以用Python构造更复杂的数据结构,尽管访问仍然受基本Python语法的控制。在

{cdn>添加^-12维数组。子类np.matrix始终是2d的,建模于老式的MATLAB矩阵。数组总是有相同种类的元素。但是dtype=object数组包含指向Python对象的指针。在许多方面,它们只是带有数组包装器的Python列表。它们与MATLAB细胞很接近。在

numpy也有结构化数组,有一个复合的dtype,由fields组成。fields按名称访问。np.recarray是一个结构化数组,增加了使用.语法访问字段的能力。这使得它们看起来很像MATLAB的结构数组。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值