我对matlab的了解非常有限,所以我将使用更一般的术语来解释我的问题:
我们有一个记录系统,可以实时对嵌入式系统中的变量进行采样,并将记录的数据作为matlab文件进行分析。
我的问题是,如果记录的变量是“double”(更具体地说是64位,IEEE 754-1985,浮点值),结果将作为两个无符号32位整数传递,我没有想法如何在matlab中将其转换回浮点值。
例如,如果我记录变量SomeFloat
,这是一个双精度变量,我会将记录的数据作为两组数据SomeFloat1
和SomeFloat2
。两者都是无符号的32位整数。 SomeFloat1
包含SomeFloat
的32个最高有效位,SomeFloat2
包含32个最低有效位。
我希望找到一个现有的转换它的功能做一个双倍,我的意思是:
MyDouble = MyDreamFunction(SomeFloat1, SomeFloat2)
我找不到MyDreamFunction
,但是对matlab不熟悉,我不确定在哪里看......
那么,有没有人知道一种简单的方法呢?
答案 0 :(得分:5)
我认为您需要typecast
(转换数据类型而不更改基础数据):
>> x1 = uint32(7346427); %// example uint32 value
>> x2 = uint32(1789401); %// example uint32 value
>> typecast([x2 x1],'double')
ans =
1.4327e-306
>> typecast([x1 x2],'double')
ans =
3.7971e-308