2009-11-18 1 views
4

Я знаю о формате MATLAB's long, формат короткий, eng ... и так далее. Но короткие и длинные всегда будут отображать предопределенное число десятичных знаков с показателем, и, например, формат банк будет отображаться всегда 2 десятичных знака.Возможно ли в matlab явно форматировать выходные номера?

Есть ли возможность разместить ваш явный формат в режиме «fortran», например f8.3 -> 1234.678?

Я ищу способ отображения чисел с четырьмя десятичными точками, а остальное впереди десятичной точки без экспоненты.

ответ

5

Согласно документации, это позволит вам format the number.

Кроме того, форматирование well documented as well.

+0

Теперь это произошло, и я забыл упомянуть ... Я хотел бы изменить его формат в MATLAB, а не во время печати в файл или ... Я хочу изменить формат, используемый matlab для отображения чисел, например, в интерактивной подсказке. – Rook

+0

Я не уверен, что вы можете изменить это, что, вероятно, будет под вариантами, если оно доступно. Вы можете распечатать отформатированный номер вручную. – monksy

11

Я не знаю способ указать глобальный формат типа вы хотите. sprintf('%15.4f', x) или num2str(x, '%15.4f') делать то, что вы ищете, если вы не возражаете, называя их явным образом каждый раз.

+0

Я вижу ... о, ну. Я оставлю вопрос немного дольше ... может быть, кто-то придумает какую-то другую идею ... – Rook

+0

+1 для усилий (для обоих), тем не менее ... – Rook

+1

+1. Я пришел сюда, чтобы сказать это. Я хотел бы указать, что fprintf может использоваться для печати на консоли в дополнение к форматированию. Вы можете сделать функцию print (dbl), которая делает fprintf (1, «% 5.3f \ n», dbl) и использовать printf вместо disp. – KitsuneYMG

0

Я просто использую sprintf и num2str, как упомянуто mtrw. sprintf() предназначен для множества скалярных аргументов различных типов (он работает с матрицами, но не совсем ясным образом). num2str() предназначен для использования с одной матрицей.

2

Ближайший я мог придумать, это:

format bank 

Это не даст вам никакого Е и 2 знака после запятой.

пытаются читать

help format 

искать другие варианты там (я больше не использовать Matlab ... переключился на Free Software :))

+0

Например (бесплатное программное обеспечение?)? – Rook

+0

Октава, конечно. –

6

Согласно Matlab documentation, который доступны на их веб-сайте, вы можете использовать

format shortG 

установить формат отображения для вывода на n.4.

2

Есть два простых решения:

  1. с использованием Sprintf функцию:

    Str = Sprintf

    ; (, MyNumber '% 4f.')

  2. с использованием Java на основе форматирования, который является гораздо более мощным (more information):

    Str = символ ('# 0000' java.text.DecimalFormat() формат (MyNumber).);

0

Наверху Matlab (.m) Содержит следующую инструкцию "format shortG".

Пример:

format shortG; 

Q = [0 0.54994 0.1998 0.1998; 
0 0.54994 0.1998 0.1998; 
0 0.54994 0.1998 0.1998; 
]; 

disp(Q); 

Дополнительные опции доступны: Matlab output format

 Смежные вопросы

  • Нет связанных вопросов^_^