我对matlab的了解非常有限,所以我将使用更一般的术语来解释我的问题:
我们有一个记录系统,可以实时对嵌入式系统中的变量进行采样,并将记录的数据作为matlab文件进行分析.
我的问题是,如果记录的变量是"双"(更具体地说是64位,IEEE 754-1985,浮点值),结果将作为两个无符号32位整数传递,我不知道如何在matlab中将其转换回浮点值.
例如,如果我记录变量SomeFloat
,这是一个双,我将记录的数据作为两组数据,SomeFloat1
和SomeFloat2
.两者都是无符号的32位整数.SomeFloat1
包含32个最重要的位SomeFloat
,和SomeFloat2
包含32个最低有效位.
我希望找到一个现有的功能来转换它做一个双,我的意思是:
MyDouble = MyDreamFunction(SomeFloat1, SomeFloat2)
Run Code Online (Sandbox Code Playgroud)
我一直无法找到 MyDreamFunction
,但是对matlab不熟悉,我不确定在哪里看......
那么,有没有人知道这样做的简单方法?
我想你想要的 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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
281 次 |
最近记录: |