Matlab: создание пользовательских числовых типов данных - PullRequest
1 голос
/ 16 декабря 2010

Пожалуйста, кто-нибудь знает, как создавать свои собственные числовые типы данных в Matlab? Я хотел бы сделать числовой тип данных с шестью частями данных, одна для знака, другая для богомола, для экспоненты, для количества битов для части данных знака (это всегда будет один бит), для количества бит для хранения данных богомола и количество бит для хранения показателя. Таким образом, вы можете указать количество бит для хранения части числовых данных, посвященной экспоненте или богомолу. С этим типом данных можно было бы смоделировать все типы данных IEEE 754 и любые другие нестандартные числовые типы данных. Кстати, этот вопрос связан с «Разработка конкретной аппаратной архитектуры для конкретного алгоритма»

Большое спасибо!

Ответы [ 2 ]

1 голос
/ 16 декабря 2010

Некоторые очевидные решения:

  1. Просто используйте массив с 6 элементами для представления каждого числа одного из ваших пользовательских типов.
  2. Используйте структуру, чтобы вы могли ссылаться на части числа по имени.
  3. Используйте средства объектно-ориентированного программирования Matlab.

Последний из этих параметров, вероятно, является лучшим, позволяя вам определять операции с вашими пользовательскими типами, которые соответствуют правилам для типов.

0 голосов
/ 17 декабря 2010

Я думаю, что решение будет использовать Fixed-Point toolbox:

Панель инструментов позволяет создавать объекты следующих типов:

* 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...