MATLAB MAT File
In this tutorial, we will discuss how to use the MAT file to store and load data in MATLAB.
Create a MAT File Using the matfile() Function in MATLAB
You can create a MAT file with a specific name using the matfile() function. You have to pass the file name and the file extension in the function to create it. For example, let’s create a MAT-file with a file name fileName and .mat extension using the matfile() function. See the code below.
You can also enable or disable the write access of the MAT file using the matfile() function. For example, see the code below.
In the above code, we gave the write access to the file as true , which means we can save data in the, if the write access is false , then we cannot save data into the file.
Save Data in the MAT File Using the save() Function in MATLAB
You can save data of any type in the MAT file using the save() function. For example, let’s save a matrix and a cell in the MAT file created above. See the code below.
In the above code, we saved myMatrix in the MAT file fileName.mat using the save() function. We also saved myCell in the MAT file fileName.mat using its object mat_file . If you save data using the save() function, it will overwrite the existing data, but if you use the object of the file, it will not change the previous data and will be stored separately in the MAT file. Note that the MAT file will be saved in the current directory of the .m file. If you want to change the directory, you have to create a new .m file in that specific file and then save the MAT file there.
Load Data From the MAT File Using the load() Function in MATLAB
You can load data from the MAT file using the load() function. For example, let’s load data from the MAT file created above. See the code below.
In the above code, we loaded the MAT file fileName.mat using the load() function. Make sure the file is present in the same directory as the .m file; otherwise, MATLAB will give an error. To load a MAT file from a different directory then you have to pass the full file path along with its name and extension to load it. For example, see the code below.
You can check the variable’s information like variable type and size stored in the loaded MAT-file using the whos function. For example, let’s check the variables stored in the above MAT-file fileName.mat . See the code below.
As you can see in the output, the MAT-file fileName.mat has a cell array and a matrix stored inside it. If you want to extract and print only one variable from the MAT file, you can use that variable’s name to extract it. For example, let’s extract the variable myCell from the above MAT file. See the code below.
As you can see in the output, we have extracted the required variable from the MAT file and store it in the variable mat . Check this link for more information about the MAT file.
Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.
Как открыть mat файл в матлабе
На Editor щелкает Live Editor или вкладка Home, в разделе File
.
На вкладке Editor, в разделе File, нажимают Open
и выбирают Open as Text.
В нижней части Open
выпадающий список выберите файл под Recent Files.
Чтобы изменить количество файлов в списке, нажмите
Preferences, и затем выберите MATLAB и Editor/Debugger. Под Most recently used file list, изменение значение для Number of entries.
На вкладке Home, в разделе Environment, нажимают
Preferences и выбирают MATLAB и Editor/Debugger. Затем выберите On restart reopen files from previous MATLAB session.
На вкладке Editor или Live Editor, в разделе File, нажатии кнопки
.
На вкладке Editor или Live Editor, в разделе File, нажимают Save
и выбирают Save As.
На вкладке Editor, в разделе File, нажимают Save
и выбирают Save Copy As.
На вкладке Editor, в разделе File, нажимают Save
и выбирают Save All.
Как открыть mat файл в матлабе
Одним из самых простых способов сохранения вычисленных значений является сохранение рабочей среды (всех переменных) с помощью команды File — Save Workspace As … . При этом открывается диалоговое окно, в котором необходимо указать папку и имя сохраняемого файла. Файл рабочей среды имеет расширение mat . После выполнения этой команды все переменные и значения рабочей среды будут храниться в одном файле с расширением mat . Для загрузки рабочей среды необходимо выполнить команды File — Open .
Кроме сохранения переменных в файле рабочей среды в Matlab есть есть возможности работы с текстовым файлом, как и в языке программирования Си.
Для записи данных в текстовый файл необходимо выполнить следующие действия:
1. Открыть файл с помощью фунции fopen . Функция fopen ( filename , mode ) имеет два параметра: filename и – строка, в которой хранится полное имя открываемого файла, mode – строка, которая определяет режим работы с файлом; возможны следующие значения: « rt » — открываем текстовый файл в режиме чтения; « wt » — создаем пустой текстовый файл для записи; « rt +» — открываем текстовый файл в режиме чтения и записи; « wt +» — открываем пустой текстовый файл, в этом режиме можно записывать и читать данные из файла. Функция возвращает два параметра: файловая переменная и строка символов, в которой хранится сообщение о результатах открытия файла.
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 :
Чтение и запись текстовых файлов
Система MATLAB имеет ряд команд для работы с файлами вида *.txt, *.html, *.m и *.mat.
Команда/ореи. Она дает доступ к файлу типа *.txt, *.html, *.m и *.mat. Формат команды
Fid=fopen [‘имя файла’] [‘мода’].
Переменная Fid называется файловым идентификатором. Она может иметь любое имя, разное для разных файлов. Переменная Fid принимает значение 1, если доступ открыт и значение -1, если доступ к файлу невозможен. Команда fopen применяется как для уже существующих файлов, так и для файлов, которые будут записаны. Мода может быть следующей.
Таблица 1.2.3. Мода открытия файла
Мода Описание
‘ rt’ Открытие файла для чтения (по умолчанию)
‘ wt’ Открытие файла, или создание нового для записи. Если файл существует, то он будет удален без предупреждения, вместо него создается новый пустой файл с тем же именем
‘ at’ Открытие файла, или создание нового для записи. Если файл существует, то добавление данных в конец файла
‘ rt+’ Открытие файла для чтения и записи. Если файл существует, то новые данные будут записаны сначала, но место старых данных
‘ wt+’ Открытие файла для чтения и записи. Если файл существует, то он будет удален без предупреждения, вместо него создается новый пустой файл с тем же именем
‘ at+’ Открытие файла, или создание нового для чтения и записи, добавление данных в конец файла
Файл filename должен быть либо в текущем каталоге, либо иа путях MATLAB, либо должен быть указан полный путь. По умолчанию новый файл записывается в текущий каталог. Команда fopen открывает и бинарные файлы *.mat, в этом случае мода не содержит буквы ‘ t’.
Команда fclose. Закрывает доступ к открытому ранее файлу, fclose(fid) -закрытие файла с идентификатором fid, fclosc(all)) — закрытие всех открытых файлов.
Команда fscanf. Чтение форматированных данных из файла, к которому открыт доступ командой fopen. Формат команды
А = fscanf(fid, ‘format’,size)
Параметр size определяет размерность массива в MATLAB, который будет создан при чтении данных из файла с идентификатором fid. Параметр size может иметь вид:
- • п — чтение п элементов в столбец;
- • inf — чтение элементов в столбец до конца;
- • [п ш] — чтение в матрицу размера п-на-ш.
Отметим, что команда fscanf читает данные из файла по строкам, а записывает их в массив MATLAB по столбцам так, как указано в size. MATLAB читает данные из указанного файла в соответствии с заданным форматом. Параметр format может быть следующим:
Таблица 1.2.4. Формат чтения
СП о° 4-І оо О t Ф
Числа с плавающей запятой (экспоненциальный, с фиксированной запятой и компактный вид)
Целое число со знаком
Восьмеричное целое число со знаком
Ряд символов без пробелов
Десятичное целое число со знаком
Шестнадцатеричное целое число со знаком
Команда fprint. Запись форматированных данных в файл, к которому открыт доступ командой fopen. Формат команды
Здесь fid есть идентификатор открытого ранее файла. Имя файла указано при его открытии. А — массив, который будет записан в файл. Отмстим, что команда fprint читает данные из массива MATLAB по столбцам, а пишет их в файл по строкам.
MATLAB пишет данные из указанного массива в файл в соответствии с заданным форматом. Строка формата указывает к какому виду следует преобразовать данные для записи. Строка формата записи начинается с символа (%) и содержит следующие необходимые и дополнительные и элементы:
- • флаги (дополнительно);
- • поля ширины и точности (дополнительно);
- • символ преобразования (необходим).
Например, в записи «%-12.5е» знак «минус» есть флаг, число 12 определяет ширину поля (общее количество цифр), число 5 — это количество знаков после запятой и, наконец, буква «е» определяет, к какому типу будут преобразованы данные для записи.
Кроме того, применяются символы, которые управляют процессом вывода:
Таблица 1.2.5. Формат вывода данных
Формат Описание
п Переход на новую строку
Ь Возврат назад на один символ
Пробелы в строке формата записываются как пробелы
Возможные флаги указаны в табл. 1.2.6.
Таблица 1.2.6. Флаги команды fprint
Символ Описание
Знак минус (-) Левое выравнивание преобразованных параметров
Знак плюс (+) Всегда печатать символ знака (+ или-)
Нуль (0) Замещение нулями вместо пробелов
Символ преобразования может быть следующим:
Таблица 1.2.7. Символы преобразования команды fprint
Десятичное представление чисел (со знаком)
Экспоненциальное представление чисел (как в 3.1415е+00)
С фиксированной точкой
Компактный вид, без лишних нулей
Десятичное представление чисел (со знаком)
Десятичное представление чисел (без знака)
Шестнадцатеричное представление (с использованием символов нижнего регистра a-f)
Шестнадцатеричное представление (символы верхнего регистра A-F)
Пример 9. Открытие файла dat.txt для записи и запись в него данных из массива А. Данные из массива А читаются по столбцам, а запись ведется числами из 6 цифр с фиксированной запятой в 5 столбцов с горизонтальной табуляцией.
fprintf(fid, ‘%6.4f % б.4f % 6.4f % 6.4f % б.4f ‘,A);
Если команда fprintf используется без идентификатора файла (вместо него -цифра 1), то вывод идет на дисплей.