2010-12-16 96 views
1

请问,有谁知道如何在Matlab中创建自己的数字数据类型?我想要做的数字数据类型有六个数据部分,一个用于符号,另一个用于mantisa,指数,用于符号数据部分的位数(总是一位),用于存储mantisa数据的位数和用于存储指数的位数。 因此,您可以指定要存储专用于指数或mantisa的数字数据部分的位数。 有了这种数据类型,如果可以模拟IEEE 754的所有数据类型以及任何不是标准数字数据类型的数据类型。 顺便提一下这个问题与"Development of a specific hardware architecture for a particular algorithm"Matlab:创建自定义数字数据类型

非常感谢!

+0

有任何理由Matlab中的数据类型不足以满足你想要做的事情?如果你可以给我们更多的背景知道你为什么要这样做,我们可能会建议一个内置的Matlab数据类型。但据我所知,如果不使用C-mex扩展,就没有办法做到这一点。 – JudoWill 2010-12-16 16:51:12

+0

@JudoWill:我想用不同的格式来表示浮点数字体系结构,以便衡量我从他们每个人得到的错误以比较它们的数字精度。 – Peterstone 2010-12-16 17:54:21

回答

1

一些明显的解决方案:

  1. 只需使用一个数组有6名成员代表自定义类型之一的每个数字。
  2. 使用结构,以便您可以通过名称引用数字的部分。
  3. 使用Matlab的面向对象编程设施。

这些选项中的最后一个可能是最好的,允许您定义遵守类型规则的自定义类型的操作。

0

我认为,解决办法是使用定点工具箱:

工具箱允许您创建下列类型的对象:

* fi — Defines a fixed-point numeric object in the MATLAB workspace. Each fi object is composed of value data, a fimath object, and a numerictype object. 
* fimath — Governs how overloaded arithmetic operators work with fi objects 
* fipref — Defines the display, logging, and data type override preferences of fi objects 
* numerictype — Defines the data type and scaling attributes of fi objects 
* quantizer — Quantizes data sets 
+0

我从你的另一个问题中看到,虽然你认为这是正确的路要走,但你仍然需要非常基本的帮助。您在SO上的答案质量与问题的质量成正比。如果你证明你已经认真地尝试解决你自己的问题,那么就会有帮助。如果你没有证明这一点,那么它不会。 – 2010-12-17 15:56:50

+0

@高性能标记:感谢您的评论! – Peterstone 2010-12-18 09:49:36