флаг][ширина поля вывода][точность] тип (спецификатор) формата

В квадратных скобках – необязательные параметры.

Флаг – используется, например, если перед числом надо поставить знак (+ или -).

Если указанная ширина поля вывода недостаточна, то поле вывода расширяется до необходимого.

Точность – количество знаков после десятичной точки.

При необходимости в строке преобразования могут еще стоять специальные символы, например, перевод строки \n

Наиболее используемые спецификаторы формата:

d – для целых со знаком

f – для вещественных со знаком

g – для вывода вещественных чисел в экспоненциальной форме - e или в естественной форме - f , в зависимости от значения

s – строка

Для нашего примера вывод на экран значения переменной x с поясняющим текстом в разных форматах:

Формат вывода вещественного числа с количеством позиций под число по умолчанию. Для нашего числа:

>> disp(sprintf('x=%g',x))

x=15.6579

>> disp(sprintf('x=%f',x))

x=15.657890

Формат вывода вещественного числа с количеством позиций под число – всего 4 и 1 позиция после десятичной точки:

>> disp(sprintf('x=%4.1f',x))

x=15.7

При выводе происходит автоматическое округление по законам математики.

Формат вывода вещественного числа с количеством позиций под число – всего 6 и 3 позиции после десятичной точки:

>> disp(sprintf('x=%6.3f',x))

x=15.658

Рассмотрим использование форматного вывода еще на одном простом примере.

Пусть даны вещественные: x=pi/4; y=sin(x); и целое z=42;

Хотим получить на экране выод значений этих переменных с поясняющим текстом в следующем виде:

x=<значение>; y=<значение>; z=<значение>;

Зададим:

>> x=pi/4

x =

0.7854

>> y=sin(x)

y =

0.7071

Преобразуем z в целое (по умолчанию z будет типа double)

z=int8(42)

z =

>> whos z

Name Size Bytes Class Attributes

z 1x1 1 int8

Мы хотим вывести на экран значение x, под которое будет выделено 4 позиции и нам достаточно 2 позиций после десятичной точки (0,ХХ). А значение y хотим разместить в 5 позициях с тремя цифрами после десятичной точки (0.707). Под значение z определим количество позиций по умолчанию.

>> sprintf('x=%4.2f; y=%5.3f; z=%d;',x,y,z)

ans =

x=0.79; y=0.707; z=42;

Наверное, пока такой способ не надо

Еще способ. Можно объединить соответствующие переменные в вектор, пользуясь операцией создания вектора-строки: x = [x1 x2 ... x]. Тогда вывод значений нескольких переменных в одну строку будет иметь вид: disp ([x1 x2 ... x]).

Например, x1=1.24; x2=-3. 45; x3=5.76; x4=-8. 07;

disp([x1 x2 x3 x4])

Получим:

1. 2400 -3. 4500 5. 7600 -8. 0700.

Аналогично можно объединять несколько текстовых переменных, например: » x1=' psi '; x2=' fi '; x3=' teta '; x4=' w1 '; » disp([x1 x2 x3 x4]) psi fi teta w1

Если Т - текстовая переменная, или некоторый текст, а Х - числовая переменная, то вывод их в одной строке можно обеспечить обращениям disp ([T num2str(X)]). Рассмотрим пример: x = -9. 3088e-015 » T = 'Значение параметра равняется '; » disp([T x]) Значение параметра равняется » disp([T num2str(x)]) Значение параметра равняется -9. 309e-015 Как следует из этого примера, "механическое" объединение текстовой и числовой переменных не приводит к желаемому результату.

 

А теперь пример программы целиком.

Напишем скрипт-файл вычисления арифметического выражения, приведенного выше.

Res=

x=input('Введите значение x=');

y=input('Введите значение y=');

res=(3*cos(x^3)^2-sin(x-pi/3))/(log(abs(y))+exp (sqrt (x+1))/(2*x))*1E6;

disp(sprintf('x=%4.2f; y=%5.3f; res=%10.3f;',x,y,res))

Сохраним его с именем, например f1и выполним. Запустить файл на выполнение можно из пункта меню Debug, Run или, набрав в окне Commad Window имя файла f1

На экране получим:

Введите значение x=0.5

Введите значение y=1

x=0.50; y=1.000; res=1020676.111;








Дата добавления: 2016-04-02; просмотров: 734;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.