python翻译matlab,如何在python3中翻译MATLAB单元?

使用我在链接文章中演示的Octave/scipy save/loadmat:

在八度音阶中>> num_nodes=3

num_nodes = 3

>> num_nodes=3;

>> K=cell(num_nodes, num_nodes);

>> for i = 1:num_nodes

for j = 1:num_nodes

K{i,j} = zeros(2,2);

end

end

>> K

K =

{

[1,1] =

0 0

0 0

[2,1] =

0 0

0 0

etc

访问一个单元格:

^{pr2}$

访问一个单元格中的一个元素:>> K{1,2}(1,1)

ans = 0

>> save -7 kfile.mat K

在Python中In [31]: from scipy import io

In [32]: data = io.loadmat('kfile.mat')

In [34]: data

Out[34]:

{'K': array([[array([[ 0., 0.],

[ 0., 0.]]),

array([[ 0., 0.],

[ 0., 0.]]),

array([[ 0., 0.],

[ 0., 0.]])],

[array([[ 0., 0.],

[ 0., 0.]]),

array([[ 0., 0.],

[ 0., 0.]]),

array([[ 0., 0.],

[ 0., 0.]])],

[array([[ 0., 0.],

[ 0., 0.]]),

array([[ 0., 0.],

[ 0., 0.]]),

array([[ 0., 0.],

[ 0., 0.]])]], dtype=object),

'__globals__': [],

'__header__': b'MATLAB 5.0 MAT-file, written by Octave 4.0.0, 2017-02-15 19:05:44 UTC',

'__version__': '1.0'}

In [35]: data['K'].shape

Out[35]: (3, 3)

In [36]: data['K'][0,0].shape

Out[36]: (2, 2)

In [37]: data['K'][0,0][0,0]

Out[37]: 0.0

loadmat将cell视为二维对象数据类型数组;而正则矩阵是二维数值数组。对象数组在很多方面都类似于嵌套的Python列表。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值