Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект.pdf
Скачиваний:
52
Добавлен:
23.07.2020
Размер:
2.68 Mб
Скачать

В результате получается текстовая строка y, состоящая из текста,

указанного в апострофах, и значения числовой переменной x, в соответствии с указанным форматом.

Эту функцию удобно использовать в команде disp в виде:

disp (sprintf (‘ формат', список переменных)).

Формат или строка преобразования имеет вид:

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

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

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

(+ или -).

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

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

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

Наиболее используемые спецификаторы формата: d – для целых со знаком

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

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

s – строка

Для нашего примера вывод на экран значения переменной x с

поясняющим текстом в разных форматах:

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

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

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

16

Формат вывода вещественного числа с количеством позиций под число – всего 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 =

 

 

 

42

 

 

 

>> whos z

 

 

 

Name

Size

Bytes Class

Attributes

z

1x1

1

int8

17

Мы хотим вывести на экран значение 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. 3088e015

T = 'Значение параметра равняется '; » disp([T num2str(x)])

Значение параметра равняется -9. 309e-015

Как следует из этого примера, "механическое" объединение текстовой и числовой переменных не приводит к желаемому результату.

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

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

денного выше.

3cos 2 x3 sin(x )

Res=

 

3

 

 

.106

 

 

 

 

ln/ y/ e

 

x 1

 

 

 

 

2x

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

18

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;

19