python读取mat数据是字典形式如何转化为矩阵_使用scipy.io.loadm将字典键从.mat Matlab文件转换为Python中具有相同值的变量名...

最好的方法是使用temp['key']。但是,要回答这个问题,可以使用exec函数。这样做的好处是,您可以这样做,不必硬编码任何变量名或限制自己在函数内工作。from numpy import array,matrix

temp = {'key':array([1,2]),'b': 4.3,'c': 'foo','d':matrix([2,2])}

for k in temp:

exec('{KEY} = {VALUE}'.format(KEY = k, VALUE = repr(temp[k])))

>>> key

array([1, 2])

>>> b

4.3

>>> c

'foo'

>>> d

matrix([[2, 2]])

注意:只有从模块中导入特定功能时,此操作才有效。如果由于代码实践或需要导入的函数量太大而不想这样做,可以编写一个函数,将模块名连接到条目前面。输出与前面的示例相同。import numpy as np,numpy

temp = {'key':np.array([1,2]),'b': 4.3,'c': 'foo','d':np.matrix([2,2])}

def exec_str(key,mydict):

s = str(type(mydict[key]))

if '.' in s:

start = s.index("'") + 1

end = s.index(".") + 1

v = s[start:end:] + repr(mydict[key])

else:

v = repr(mydict[key])

return v

for k in temp:

exec('{KEY} = {VALUE}'.format(KEY = k, VALUE = exec_str(k,temp)))

虽然这不是最佳的代码实践,但它对我测试的所有示例都很有效。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值