Купить Matlab  |  Mathematica  |  Mathcad  |  Maple  |  Statistica  |  Другие пакеты Поиск по сайту
Internet-класс  |  Примеры  |  Методики  |  Форум  |  Download
https://hub.exponenta.ru/


Файлы данных
  • Файлы данных и функции доступа к ним
  • Импортирование данных из других каталогов
  • Неструктурированные файлы
  • Структурированные файлы

    В начало книги

  •  

    Список встроенных функций

    Структурированные файлы
    К предыдущему разделуК следующему разделу

    В этом разделе обсуждается использование функций READPRN, WRITEPRN и APPENDPRN для работы со структурированными файлами. Структурированный файл данных — файл с фиксированным числом значений на строке. Например, если экспортировать прямоугольную область из электронной таблицы в текстовый файл, возникающие в результате строки и столбцы чисел сформируют структурированный файл.

    Считывание матрицы с помощью функции READPRN

    Предположим, что имеется ASCII-файл, содержащий данные, показанные ниже. Эти данные могут быть взяты из электронной таблицы или из любого другого источника.

    18-05.gif (3868 bytes)

    Рисунок 4 показывает документ Mathcad, который считывает эти данные в матрицу.

    Функция READPRN читает весь файл данных, определяет число строк и столбцов, и создает матрицу из этих данных.

    Когда Mathcad читает данные с помощью функции READPRN:

    • Каждый раз READPRN читает файл данных целиком.
    • Все строки в файле данных должны содержать одинаковое количество значений. (Строки, не содержащие значений, игнорируются). Если строки в файле имеют различное число значений, Mathcad, отмечает функцию READPRN сообщением “ошибка файла”.
    • Функция READPRN игнорирует текст в файле данных.
    • Результатом чтения файла данных является m-на-n матрица, где m есть число строк, содержащих данные в файле, и n есть число значений в строке. Чтобы создать матрицу из значений в файле данных, используйте равенство, подобное M: = READPRN(file). Не используйте нижние индексы для M. Функция READPRN возвращает матрицу, поэтому нижние индексы излишни.
    • Чтобы читать из файла с именем, которое не совпадает с именем файловой переменной, либо из файла, находящегося не в каталоге по умолчанию, выберите Присоединить к файлу из меню Файл. Подробнее см. раздел “Импортирование данных из других каталогов”.

    Предупреждение: Каждая строка в файле данных должна содержать одинаковое число значений. Если оставить промежутки там, где Mathcad ожидает значение, функция READPRN не сможет прочитать файл. Mathcad определяет конец одного и начало следующего значения, ища пробелы или запятые.

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

    18-06.gif (7098 bytes)

    Рисунок 4: Считывание таблицы данных в матрицу.

    18-07.gif (10241 bytes)

    Рисунок 5: Присваивание различным переменным значений из разных столбцов в файле данных.

    18-08.gif (8214 bytes)

    Рисунок 6: Запись данных в структурированный файл данных.

    Запись данных при помощи функций WRITEPRN и APPENDPRN

    Рисунок 6 показывает, как использовать функцию WRITEPRN, чтобы записать данные в структурированный файл данных.

    Когда Mathcad обрабатывает документ из Рисунка 6, создается файл данных, содержащий следующие значения:

    18-09.gif (4452 bytes)

    В отличие от WRITE функция WRITEPRN записывает данные в виде столбцов. Обратите внимание, что, поскольку для PRNPRECISION установлено значение четыре, числа записаны с четырьмя знаками после запятой. Поскольку значение PRNCOLWIDTH равно восьми, каждый столбец имеет ширину в восемь символов. Так как PRNPRECISION и PRNCOLWIDTH могут изменяться независимо, нужно не упустить из виду, что ширина столбца должна быть такой, чтобы разместились все необходимые цифры вместе с пробелом, разделяющим отдельные  значения.

    Когда используется функция WRITEPRN:

    • Равенства, содержащие WRITEPRN, должны быть следующего вида. Слева записывается WRITEPRN( file), где file — имя файловой переменной, затем следует символ определения (:=) и выражение, возвращающее матрицу. Не используйте дискретные аргументы или нижние индексы с WRITEPRN .
    • Каждое новое равенство записывает новый файл. Если два равенства пишут в один файл, данные, написанные вторым равенством уничтожат данные, написанные первым. Используйте APPENDPRN, если нужно дописать значения к файлу вместо того, чтобы перезаписать файл. APPENDPRN function
    • Встроенные переменные PRNCOLWIDTH и PRNPRECISION определяют формат файла данных, создаваемого Mathcad. Текущее значение PRNCOLWIDTH определяет ширину столбцов (в символах). Текущее значение PRNPRECISION определяет число используемых значащих цифр. По умолчанию PRNCOLWIDTH = 8 и PRNPRECISION = 4. Чтобы изменить эти значения, выберите Встроенные переменные из меню Математика или поместите соответствующие определения в документ Mathcad выше места использования WRITEPRN, как показано на Рисунке 7.
    • Если записываемый массив  является  составным  (чьи элементы являются сами массивами), либо комплекснозначным, то тогда WRITEPRN создаст не просто ASCII-файл, а файл специального формата, который навряд ли будет читаем другими прикладными программами. Этот файл может, однако, читаться функцией READPRN.

    18-10.gif (8137 bytes)

    Рисунок 7: Документ, который создаёт файл данных со столбцами шириной в 10 символов, содержащий числа с 5 значащими цифрами.

    Используя функцию augment, можно объединять отдельные переменные в массивы, и записывать их все в файл данных. Рисунок 8 показывает, как это делать.

    18-11.gif (5633 bytes)

    Рисунок 8: Запись нескольких векторов, объединённых вместе.

    Преимущества использования READPRN и WRITEPRN

    Использование READPRN, как правило, предпочтительнее использования READ. Когда данные структурированы в столбцы, READPRN переводит данные в Mathcad в легкодоступной форме.

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

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

    Помните: используйте нижний индекс, являющийся дискретным аргументом, чтобы читать с помощью READ; не используйте нижний индекс, чтобы читать с помощью READPRN.

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

    Используйте WRITE вместо WRITEPRN, когда требуется напихать так много значений, сколько возможно, в малый файл данных.

    В начало страницы  К предыдущему разделуК следующему разделу

    Список встроенных функций

    | На первую страницу | Поиск | Купить Matlab

    Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter


    Copyright © 1993-2024. Компания Softline. Все права защищены.

    Дата последнего обновления информации на сайте: 04.03.17
    Сайт начал работу 01.09.00