Как сохранить файл в матлабе чтоб потом открылся
Создание программ часто предполагает сохранение результатов расчетов в файлы для их дальнейшего анализа, обработки, хранения и т.п. В связи с этим в MatLab реализованы различные функции по работе с файлами, содержащие данные в самых разных форматах. В этой главе рассмотрим наиболее полезные функции для сохранения и загрузки результатов работы алгоритмов из файлов.
5.1. Функции save и load
В самом простом случае для сохранения и последующей загрузки каких-либо данных в MatLab предусмотрены две функции
save <имя файла> <имена переменных> % сохранение данных
load <имя файла> <имена переменных> % загрузка данных
Функция save позволяет сохранять произвольные переменные программы в файл, который будет (по умолчанию) располагаться в рабочем каталоге (обычно поддиректория work) и иметь расширение mat. Соответственно функция load позволяет загрузить из указанного mat-файла ранее сохраненные переменные. Ниже представлен пример использования данных функций:
function save_load
x = ones(5);
y = 5;
s = 'hello';
save params x y s;
x = zeros(5);
y = 0;
s = '';
load params x y s;
disp(x);
disp(y);
disp(s);
В данной программе сначала выполняется инициализация переменных x, y, s, затем, они сохраняются в файл params.mat, заменяются другими значениями и после загрузки отображаются на экране. При выполнении этой программы на экране будут показаны те же значения переменных, которые они принимали в самом начале. Таким образом демонстрируется работа функций save и load.
Следует обратить внимание, что функция load позволяет загружать из mat-файла не все, а только указанные программистом переменные, например
load params x; % загружает только значение переменной x
load params y; % загружает только значение переменной y
load params x s; % загружает значения переменных x и s
© 2021 Научная библиотека
Копирование информации со страницы разрешается только с указанием ссылки на данный сайт
Если изображение img, вы можете использовать imwrite (img, 'result.jpg'); этот метод сохраняет размер изображения и размер дисплея одинаковыми. Размер изображения, полученного с помощью следующего метода, отличается от исходного изображения, ниже приводится изображение, сохраненное этим методом.
Мы заметили, что изображения, сохраненные с помощью imwrite, имеют только само изображение, и ничего больше.
2. Сохранить как
Используйте файл меню-> saveas-> на рисунке, чтобы выбрать формат сохранения (может быть сохранен в форматах fig, eps, jpeg, gif, png, bmp и других). Недостатком этого является то, что резкость изображения сохраняется как большая жертва.
3. Скопируйте и вставьте
Используйте меню edit-> copyfigure на рисунке, затем изображение копируется в буфер обмена. Следует отметить, что «Bitmap» следует выбирать в «параметрах копирования».
4. Используйте команду saveas
Matlab предоставляет функцию прямого сохранения для сохранения изображения на указанном рисунке или блок-схемы в Simulink. Формат сохранения: saveas (gca, filename, fileformat), который имеет три параметра:
(1) gca: графический дескриптор, если строка заголовка графического окна «Рисунок 3», дескриптор равен 3, вы также можете использовать gcf для непосредственного получения текущего дескриптора окна.
(2) имя файла: строка одинарных кавычек, укажите имя файла
(3) fileformat: строка в одинарных кавычках, определяющая формат хранения
saveas(gcf, 'save.jpg' );% сохранить изображение текущего окна saveas( 2 , 'save.jpg' );% Сохранить рисунок 2 Изображение окнаНиже приведены экспериментальные результаты с использованием saveas:
Мы видим, что результаты, сохраненные с помощью saveas, имеют белые границы, а результаты, сохраненные функцией печати ниже, также имеют белые границы. Если вы хотите использовать сгенерированное изображение для последующей обработки изображения, рекомендуется использовать функцию imwrite, в противном случае вы можете использовать любую функцию сохранения.
5, функция печати
Функция печати управляет принтером.После использования функции печати функция печати используется для сохранения изображения. Формат печати: print (figure_handle, fileformat, filename), который имеет три параметра:
(1) figure_handle: графический дескриптор, если строка заголовка графического окна «Рисунок 3», дескриптор равен 3, вы также можете использовать gcf для непосредственного получения текущего дескриптора окна
(2) fileformat: строка в одинарных кавычках, определяющая формат хранения:
Создание программ часто предполагает сохранение результатов расчетов в файлы для их дальнейшего анализа, обработки и хранения. В связи с этим в среде MATLAB реализованы различные функции по работе с файлами, содержащие данные в разных форматах.
Для загрузки данных из файла,расположенного на локальном диске в рабочую средуMATLAB, используются следующие операторы:load, freadиfscanf. Для сохранения данных из рабочей среды MATLAB в файл на локальном диске предусмотрено использование следующих операторов: save, fwrite, fprintf.
В самом простом случае для сохранения и последующей загрузки каких-либо данных в среде MATLAB предусмотрены следующие функции, соответственно: save и load, имеющие следующий синтаксис:
save<имя файла><имена переменных>
load<имя файла><имена переменных>
Функция save позволяет сохранять произвольные переменные, используемые в программе в файл, который будет по умолчанию располагаться в рабочем каталоге (обычно поддиректория work) и иметь расширение mat. Соответственно функция loadпозволяет загрузить из указанного mat-файла ранее сохраненные переменные.
Недостатком функций save и load является то, что они работают с определенными форматами файлов (обычно mat-файлы) и не позволяют загружать или сохранять данные в других форматах. Между тем бывает необходимость загружать информацию, например, из бинарных файлов, созданных другими программными продуктами для дальнейшей обработки результатов в среде MATLAB. С этой целью в среде MATLAB предусмотрены следующие функции
fwrite(<идентификатор файла>, <переменная>, <тип данных>)
<переменная>=fread(<идентификатор файла>, <размер>, <точность>)
где: <идентификатор файла>– это указатель на файл, с которым предполагается работать. Для того, чтобы получить идентификатор файла, используется функция fopen, имеющая следующий синтаксис:
<идентификатор файла>=fopen(<имя файла>,<режим работы>)
где: параметр <режим работы> может принимать значения, приведенные в таблице 1.
В том случае, если функция fopen() по каким-либо причинам не может корректно открыть файл, то она возвращает значение –1. После выполнения всех файловых операций файл должен быть закрыт с помощью функции fcloseследующей структуры:
fclose(<идентификатор файла>)
С помощью команды fclose(all)можно закрыть сразу все открытые файлы, кроме стандартных системных файлов.
Пример использования функций работы с файлами:
A=[1 2 3 4 5];
fid=fopen('my_file.dat', 'wb');% открытие файла на запись
fwrite(fid, A, 'double');% запись матрицы А в файл
fclose(fid);% закрытие файла
B=fread(fid, 5, 'double'); % чтение 5 значений в формате double
disp(B); % отображение на экране
fclose(fid); % закрытие файла
В результате выполнения данных операций в рабочем каталоге MATLABбудет создан файл my_file.dat размером 40 байт, в котором будут содержаться 5 значений типа double, записанных в виде последовательности байт (по 8 байт на каждое значение). Функция fread() считывает последовательно сохраненные байты и автоматически преобразовывает их к типу double, т.е. каждые 8 байт интерпретируются как одно значение типа double.
В приведенном примере в явном виде указывалось число элементов для считывания из файла. Однако, часто общее количество элементов бывает неизвестным, либо изменяется в процессе работы программы. В этом случае необходимо считывать данные из файла до тех пор, пока не будет достигнут его конец. В MATLAB существует функция для проверки достижения конца файла,которая возвращает 1 при достижении конца файла и 0 в других случаях и имеет следующий синтаксис:
feof(<идентификатор файла>)
Таблица 1 - Режимы работы с файлами в среде MATLAB при использовании функции fopen
Значение параметра <режим работы> | Описание параметра |
'r' | чтение |
'w' | запись (стирает предыдущее содержимое файла) |
'a' | добавление (создает файл, если его нет) |
'r+' | чтение и запись (не создает файл, если его нет) |
'w+' | чтение и запись (очищает прежнее содержимое или создает файл, если его нет) |
'a+' | чтение и добавление (создает файл, если его нет) |
'b' | дополнительный параметр, означающий работу с бинарными файлами, например, ‘wb’, ‘rb’ ‘rb+’, ‘ab’ |
Описанные ранее функции работы с файлами позволяют записывать и считывать информацию по байтам, которые затем требуется правильно интерпретировать для преобразования их в числа или строки. В то же время выходными результатами многих программ являются текстовые файлы, в которых явным образом записаны те или иные числа или текст. Прочитать такой файл побайтно, а затем интерпретировать полученные данные довольно трудоемкая задача, поэтому для этих целей были специально разработаны функции форматированного чтения или записи информации: fscanf и fprintf, соответственно.
Функция чтения fscanfимеет следующий синтаксис:
[value, count]=fscanf(fid, format, size)
где: value – результат считывания данных из файла; count – число прочитанных (записанных) данных; fid – указатель на файл; format – формат чтения (записи) данных; size – максимальное число считываемых данных
Функция записиfprintfимеет следующий синтаксис:
count=fprintf(fid, format, a,b. )
где:a,b,… – переменные для записи в файл.
Таблица 2- Список основных спецификаторов параметра formatдля функций fscanf() и fprintf()
Спецификатор | Описание |
%d | целочисленные значения |
%f | вещественные значения |
%s | строковые данные |
%c | символьные данные |
%u | беззнаковые целые значения |
В форматной строке могут бытьтакже использованы различные управляющие символы:
\r – возврат каретки;
\t – горизонтальная табуляция;
\n – переход на новую строку
С помощью функции fprintf() можно осуществлять запись разнородных данных в файл в требуемом формате, в том числе и строковых переменных, что позволяет размещать в файле различные текстовые надписи.
Одним из самых простых способов сохранения вычисленных значений является сохранение рабочей среды (всех переменных) с помощью команды File - Save Workspace As … . При этом открывается диалоговое окно, в котором необходимо указать папку и имя сохраняемого файла. Файл рабочей среды имеет расширение mat . После выполнения этой команды все переменные и значения рабочей среды будут храниться в одном файле с расширением mat . Для загрузки рабочей среды необходимо выполнить команды File - Open .
Кроме сохранения переменных в файле рабочей среды в Matlab есть есть возможности работы с текстовым файлом, как и в языке программирования Си.
Для записи данных в текстовый файл необходимо выполнить следующие действия:
2. Записать данные в файл с помощью функции printf . Обращение к функции printf имеет следующий вид: printf ( F , s 1, s 2), где F – имя файловой переменной, s 1 – строка вывода, s 2 – список выводимых переменных. В строке вывода могут использоваться некоторые специальные символы:
o \ b – сдвиг текущей позиции влево;
o \ n – перевод строки;
o \ t – горизонтальная табуляция.
В строке вывода вместо выводимых переменных указывается строка преобразования следующего вида: % n . m , где n – ширина поля вывода; если позиций недостаточно, то поле вывода расширяется до минимального необходимого, незаполненные позиции заполняются пробелами; m – количество знаков после десятичной точки. В качестве типа могут использоваться следующие латинские буквы: c – символ, d – целое десятичное число, o – целое восьмеричное число, x – целое шестнадцатеричное число, f – вещественное число вида [+] dddd . dddd , e – вещественное число в экспоненциальной форме вида + d . dddde [+] ddd , g – вещественное число вида e или f в зависимости от значения и точности, s – строка символов.
3. Закрыть файл с помощью функции fclose ( F ), F .
Для чтения данных из файла необходимо:
1. Открыть файл с помощью функции fopen .
2. Считать данные из файла с помощью функции fscanf . Обращение к функции fscanf имеет вид: A = fscanf ( F , s 1). В переменную А считываются данные из файла в соответствии со строкой s 1.
3. Закрыть файл (функция fclose ) .
Рассмотрим пример записи в файл значений: x = p /7 и y = cos ( x ).
На рисунке ниже представлено вычисление x и y и запись их в текстовый файл abc . txt .
Содержимое текстового файла abc . txt :
Теперь рассмотрим два способа чтения данных из файла abc . txt . На рисунке представлено чтение содержимого файла abc . txt в переменную h .
На следующем рисунке показан пример чтения содержимого файла abc . txt в переменную p и s :
Читайте также: