将双数转换为浮点数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将双数转换为浮点数相关的知识,希望对你有一定的参考价值。
我需要在Python中对MATLAB数据做一些阐述。数据在Matlab中存储为doubles
数组。当我检索它时,尽管被here声明,当用Python处理时,来自Matlab的double
数据类型在float
数据类型中被转换,我得到这个错误:
TypeError:unorderable类型:double()<float()
我想要做的就是这个
import matlab.engine
eng=matlab.engine.connect_matlab()
x = eng.workspace['MyData']
x = x[len(x)-1]
if x < 0.01:
#do stuff
如何将存储在数组中的double
数转换为float
,以便我可以将它与我的其他Python变量一起使用?
答案
在Matlab中将双精度转换为浮点数就像调用single function一样简单:
A = rand(10);
whos A;
B = single(A);
whos B;
根据控制台输出:
Name Size Bytes Class Attributes
A 10x10 800 double
Name Size Bytes Class Attributes
B 10x10 400 single
请注意精度损失,因为您要将64位数值转换为32位数值。
编辑
由于你不能操纵你的Matlab数据,为了做到这一点,我建议你使用Numpy(参考这个函数以防:https://docs.scipy.org/doc/numpy-1.12.0/reference/generated/numpy.ndarray.astype.html)或struct
进行直接转换(参考这个答案以防:convert double to float in Python)。
以上是关于将双数转换为浮点数的主要内容,如果未能解决你的问题,请参考以下文章
ValueError:无法将字符串转换为浮点数:'GIAC'
Numpy 错误“无法将字符串转换为浮点数:'Illinois'”