Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Пример 2. Требуется записать значения переменных х = -pi/4 и у - sin(x) в файл в формате с плавающей точкой, оставляя четыре цифры после десятичной точки для х и восемь



Требуется записать значения переменных х = -pi/4 и у - sin(x) в файл в формате с плавающей точкой, оставляя четыре цифры после десятичной точки для х и восемь цифр – для у.

Файл-программа, решающая данную задачу

% форматный вывод в текстовый файл

[F, mes] = fopen('twonum.txt', 'w');

x = -pi/4;

y = sin(x);

fprintf(F, '%7.4f%11.8f', x, y);

fclose(F);

Обратите внимание на второй аргумент команды fprintf. Код %7.4f задает формат вывода переменной х, которая расположена на первом месте в списке вывода. Знак процента указывает на начало формата, цифра 7 обозначает, что всего под значение переменной х отводится семь позиций (включая десятичную точку и место под знак, которое резервируется и для положительных чисел), цифра 4 после разделителя-точки обеспечивает точность отображения результата – четыре цифры после десятичной точки. Спецификатор f указывает на то, что следует вывести число в формате с плавающей точкой. Аналогичным образом работает формат %11.8f для вывода у. При использовании форматного вывода следует учесть, что если количество элементов в списке вывода больше числа кодов формата, то форматные коды применяются повторно, начиная с первого. После выполнения файл-программы из примера файла twonum.txt составляют два числа – значения переменных х и у с требуемым числом цифр, выводимых на экран ранее написанной функцией myview:

-0.7854-0.70710678

Соответствие форматов и получаемого результата приведено на схеме, изображенной на рис. 1, каждая позиция подчеркнута.

Рис. 1. Схема соответствия форматов вывода и результата

Значения х и у вывелись одно за другим без разделителя, что затрудняет чтение результата. Можно было бы указать в списке форматов больше позиций под вывод второго числа, например, '%7.4f%15.8f'. Поскольку у меньше единицы и выравнивание числа в выделенном для него поле по умолчанию производится по правому краю, то числа в данном случае будут разделены пробелами. Но если в примере 2 заменить у = sin(x) на у =1000000*sin (x), то числа снова не будут разделены. Кроме того, пятнадцати позиций не хватило под вывод у с восьмью знаками после десятичной точки, и MATLAB автоматически увеличил поле вывода. Поэтому при задании форматов следует предусмотреть некоторые разделители между числами.

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





Дата публикования: 2014-12-11; Прочитано: 185 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...