
matlab laboratornye / матлаботчет10
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра PC
отчет
по лабораторной работе №10
по дисциплине «MATLAB»
Тема: РАБОТА С ФАЙЛАМИ В MATLAB
Студент гр. фыв |
|
фыв |
Преподаватель |
|
фыв |
Санкт-Петербург
фыв
Цель работы:
Освоение принципов записи и чтения в (из) файл(а) различных форматов.
Краткие теоретические сведения:
Для записи массива x в ASCII-файл используется команда dlmwrite('имя файла', x, 'разделитель'), а для чтения — x = dlmread('имя файла', 'разделитель'). Разделителем может быть любой символ (например, точка с запятой или двоеточие).
Для записи нескольких массивов в двоичный файл используется команда save, создающая файл формата `.mat`. Для чтения данных из такого файла применяется команда load, при этом имена переменных должны совпадать с исходными.
Для записи данных в ASCII-формате применяется команда save -ascii, создающая файл без расширения, где данные воспринимаются как одна переменная с именем файла. Чтение таких данных выполняется командой load -ascii, результат присваивается переменной с именем файла.
Копии рабочей области:
Рисунок 1 - Содержание m-файла RWascii1
Команда clear удаляет все переменные из текущей рабочей области, освобождая системную память, rand создает матрицу размером 2*10, dlmwrite записывает матрицу х в сюжетный файл myfile.dat с использованием делимитера «:».
Рисунок 2 - Значения матрицы х в Workspace
Рисунок 3 - Результат использования команды clear
Рисунок 4 - Чтение dat-файла
При изначальной записи в dat-файл был указан делимитер «:», ошибка возникает из-за неверно указанного делимитера «;». При использовании функции x = dlmread('myfile.dat',':'); извлечение данных массива (рис.4), которые совпадают с исходными (рис.2).
Упражнение:
Рисунок 5 - Создание массивов X, y, z, t
Затем введя save «MyFile2 z t y X;» создается mat-файл с сохраненными в нем массивами.
После этого «dlmwrite('text_y.dat', y, 'delimiter', ',');» записывает массив «y» в ASCII-файл «text_y.dat».
Запись переменных у, Х, t в двоичный файл «bin_yxt.mat» осуществляется командой «save('bin_yxt.mat', 'y', 'X', 't', '-mat');».
Запись переменных z, Х, y в текстовый файл «text_xzy.txt» осуществляется командой «save('text_xzy.txt', 'z', 'X', 'y', '-ascii');».
Запись переменных у, z, t в текстовый файл «text_yzt.txt» осуществляется командой «save('text_yzt.txt', 'y', 'z', 't', '-ascii');».
После очистки рабочей области командой «clear» и загрузки переменной «y» из «MyFile2.mat» в окне Workspace появляется одномерный массив «у», состоящий из единиц.
Рисунок 6 - Окно Workspace после очистки и загрузки матрицы y
После очистки Workspace и ввода «load MyFile2.mat yt;» происходит ошибка. Соответственно в Workspace ничего не появляется из-за того, что массива «yt» не существует.
Рисунок 7 - Загрузка переменной yt (несуществующей) из файла MyFile2.mat
Рисунок 8 - Исправление ошибки загрузки данных из File2.mat
Введя «load MyFile2.mat y t;» в Workspace отображаются два запрашиваемых массива «y» и «t».
После очистки Workspace и ввода «load -ascii text_yzt.txt;» результат загружается в переменную с именем файла без расширения, то есть text_yzt.
Рисунок 9 - Загрузка данных их текстового файла text_yzt.txt
При очистке Workspace и вводе «load -ascii text_xzy.txt;» выводится сообщение об ошибке. Причина ошибки в том, что команда «load -ascii» ожидает строго числовые данные в файле. Файл «text_xzy.txt» содержит текст, это вызывает ошибку.
Рисунок 10 - Загрузка ASCII-файла text_xzy
Вывод:
В результате выполнения лабораторной работы были освоены основные принципы работы с файлами различных форматов в MATLAB. Были изучены команды записи и чтения данных в ASCII- и бинарные файлы, такие как dlmwrite, dlmread, save, и load. Для успешной работы с файлами важно четко следовать формату данных, записываемых в файл, и учитывать требования команд чтения.