Как сохранить файл в матлабе чтоб потом открылся

Обновлено: 05.07.2024

Создание программ часто предполагает сохранение результатов расчетов в файлы для их дальнейшего анализа, обработки, хранения и т.п. В связи с этим в 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 :

Читайте также: