Читайте также:
|
|
Требуется записать значения переменных х = -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 автоматически увеличил поле вывода. Поэтому при задании форматов следует предусмотреть некоторые разделители между числами.
Форматы данных можно разделять любым текстом, включая пробелы, который запишется в текстовый файл между соответствующими значениями.
Дата добавления: 2015-07-15; просмотров: 61 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Запись строк | | | Запись данных массивов структур в текстовый файл |