Принудительное изменение типа переменной в MATLAB - PullRequest
7 голосов
/ 02 февраля 2011

У меня есть переменные типа double, я хочу, чтобы они были float.Есть ли способ заставить переменную быть равной float, а не двойной, также. Есть ли способ сделать это каким-то глобальным способом для всех функций и подфункций с несколькими строками в начале основной функции?У меня много функций, и они используют много временных переменных и создают переменные, которые они возвращают.Прохождение всех моих функций и их изменение будет очень трудным.

Мое обоснование для этого запроса:

Я пишу программу MATLAB, чтобы смоделировать алгоритм, который затемРеализовав аппаратно, я хочу убедиться, что использование 32 бит в качестве размера моих сигналов не приведет к ошибкам в вычислениях.

Ответы [ 2 ]

7 голосов
/ 02 февраля 2011

Использование B=single(A) в соответствии с предложением @cbz или определение массивов как SINGLE , например, путем вызова B=zeros(3,3,'single') создает "плавающие" значения в Matlab.

Нет способа глобально превратить Matlab в «плавающую» среду. Хотя большинство функций более низкого уровня также реализованы для single (с некоторыми исключениями, например, упомянутыми в справке к DOUBLE ), многие встроенные функции высокого уровня будут работать только с double ,

Другими словами, вам придется вручную определить ваши переменные как single, вам придется периодически проверять, чтобы переменные не были спокойно преобразованы в double, и в конце ваш код мог бы не работает, если ей нужна функция, которая еще не реализована для single.

5 голосов
/ 02 февраля 2011

MATLAB, эквивалентный 'float', является 'single.Вы можете конвертировать, используя

B = single(A).

Тем не менее, ваше предположение о том, что это 32-битное значение, может потребовать пересмотра.Это не так просто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...