Как открыть файл в matlab

Zoloto585CPA

Иллюстрированный самоучитель по MatLab

Файлы – это довольно распространенные объекты системы MATLAB. О некоторых типах файлов уже говорилось в предшествующих главах. В этом уроке рассматриваются свойства файлов, которые не зависят от их типа и относятся к любым файлам.

Файл обычно является некоторой совокупностью данных, объединенных одним именем. Тип файла, как правило, определяется его расширением. Мы рассматриваем файл как некое целое, хотя физически на диске он может быть представлен несколькими областями – говорят, что в этом случае файл фрагментирован.

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

  • Команда open имя, где имя должно содержать массив символов или символьную переменную, открывает файлы в зависимости от анализа параметра имя и расширения в имени имя:
  • переменная – открывает массив, названный по имени, в редакторе массивов (Array Editor);
  • .mat – открывает файл, сохраняет переменные в структуре в рабочей области;
  • .fig – открывает его в редакторе дескрипторонй графики Property Editor;
  • .m – открывает m-файл в редакторе-отладчике;
  • .mdl – открывает модель в Simulink;
  • – открывает, если он есть, m-файл с тем же именем;
  • .html – открывает HTML документ в браузере помощи.

Если файлы с расширением существуют в пути MATLAB, то открывается тот файл, который возвращается командой which имя, если нет – то файл из файловой системы. Если файл не имеет расширение имени, то он открывается той программой, формат файлов которой был бы обнаружен функцией which (‘имя файла’) По умолчанию для всех файлов с окончаниями, отличными от вышеперечисленных, вызывается openother. Open вызывает функции орепххх, где ххх – расширение файла. Исключение – переменные рабочей области, для которых вызывается openvar, и рисунки, для работы с которыми вызывается openim. Создавая т-файлы с именем орепххх, пользователи могут изменять обработку файлов и добавлять новые расширения в список. Закрывать файлы, открытые при помощи open, нужно из редакторов, вызываемых ореnххх.

  • [FILENAME, PATHNAME] = uigetfile(FILTERSPEC. Title). Открывает диалог с именем Title и фильтром FILTERSPEC (например, массивом ячеек, содержащим расширения файлов) и возвращает файл, выбранный пользователем, и путь к нему. Возвращает FILENAME=0, если файл не существует или если пользователь нажал на Cancel. [FILENAME, PATHNAME] = uigetfile (FILTERSPEC, Title. X. Y) размещает окно диалога в точке X, Y (координаты в пикселях).
  • [FILENAME, PATHNAME] = uiputfile(FILTERSPEC. TITLE) сохраняет файл в диалоге, управляемом пользователем. Параметры аналогичны таковым в функции uigetfile.
  • Команда ui open открывает диалог, и если пользователь выбрал файл с известным расширением, вызывает его, используя open, или если имя файла имеет неизвестное расширение, то вызывается uigetfile. Входными аргументами uiopen могут быть mat lab, load, figure, simulink, editor. Без входных аргументов или с входным аргументом matlab в окне диалога предлагается выбрать *.m, *.fig, *.mat, *.mdl (если Simulink установлен), * .cdr (если state flow установлен), *.rtw, *.tmf, *.tlc, *.c, *.h, *.ads, *.adb (если установлен Real-Time Workshop). С аргументом load – *.mat. С аргументом figure предлагаются *.fig; simul ink – *.mdl, editor – *.m, *.mdt *.cdr, *.rtw, *.tmf, *.tlc, *.c, *.h, *.ads, *.adb.
  • Команда uiload открывает файл в диалоге, управляемом пользователем, с использованием команды load.

Функция ui import запускает Мастер импорта (Import Wizard), импортирующий из файла в текущей папке или буфера обмена Windows. Она соответствует выбору Import Data из меню File или выбору Paste Special из меню Edit MATLAB.

  • ui import (FILENAME) – запускает Мастер Импорта, открывая файл FILENAME. Мастер импорта показывает данные для предварительного просмотра. В окне предварительного просмотра появляются данные и их представление в виде переменных MATLAB. Собственно данные, текст и заголовки представляются разными переменными MATLAB. Для данных ASCII вы должны удостовериться, что Мастер импорта распознал разделители столбцов. Самостоятельно он может распознать только символ табуляции, пробел, запятую или точку с запятой. Нужно щелкнуть мышью на кнопке Next и в следующем окне либо подтвердить выбор разделителя, сделанный Мастером, либо выбрать Other и ввести любой разделитель.
  • ui import (‘ -file’) – вначале выводит диалог выбора файла.
  • ui import (‘-pastespecial’) – вначале выводит для предварительного просмотра содержимое буфера обмена Windows.
  • S = ui import (…) хранит результирующие переменные как поля структуры S.
  • Команда uisave – управляемое пользователем сохранение (команда save описана в уроке 2) с Windows диалогом.
  • Функция saveas – сохраняет рисунок или модель Simulink в желаемом формате на носителе информации или на устройстве, разрешенном print.
  • Функция saveas (H, ‘FILENAME’) – сохраняет данные в соответствии с командой дескрипторной графики Н в файле FILENAME. Формат файла определяется расширением имени FILENAME.
  • Функция saveas (H. ‘FILENAME’. ‘FORMAT’) – выполняет то же, но с параметром FORMAT (формат задается тем же способом, что и расширение имени файла и может от него отличаться). FORMAT имеет приоритет перед расширением имени файла. Параметры функции:
  • ‘fig’ – сохранить рисунок (график) в двоичном fig-файле;
  • ‘m’ или ‘mfig’ – сохранить рисунок в двоичном fig-файле и создать m-файл для его загрузки;
  • ‘mmat’ – сохранить рисунок в m-файле как последовательность команд создания рисунка. Может не поддерживать новейшие графические функции.

Команда или функция delete удаляет файл или объект графики.

  • delete имя файла удаляет файл текущей папки. Может быть использована *. Предпочтительно использование с записью в форме функции delete(‘mw файла’), когда имя файла – строка.
  • delete(H) удаляет графический объект с дескриптором Н. Если этот объект – окно, то оно предварительно закрывается.
  • Функция close(H) закрывает только графические окна. Для закрытия файлов необходимо использовать команду f close.

Для записи файлов на диск служит команда save, используемая в довольно очевидных формах:

Соответственно для считывания файлов с диска служит команда load:

В этих командах имя файла указывается по правилам, принятым в операционных системах класса MS-DOS. Эти команды обычно дублируются кнопками панелей инструментов и браузером файлов.

Русские Блоги

[Matlab] Операции с файлами в Matlab: fopen, fseek, fread, fclose и т. Д.

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

1. Открытие и закрытие файла

1) Откройте файл
Перед чтением и записью файла необходимо использовать функцию fopen, чтобы открыть или создать файл, и указать режим работы для файла. Формат вызова функции fopen:
fid = fopen (имя файла, «открытый метод»)
Примечание: fid используется для хранения значения дескриптора файла. Если возвращаемое значение дескриптора больше 0, файл открывается успешно. В имени файла используется строка символов, чтобы указать файл данных, который нужно открыть. Распространенные способы открытия следующие:
 ‘r’: откройте файл в режиме только для чтения (режим по умолчанию), файл должен уже существовать.
 ‘r +’: откройте файл в режиме чтения-записи, после открытия сначала прочтите, а затем запишите. Файл должен уже существовать.
 ‘w’: записывать данные после открытия. Файл обновляется, если он уже существует; если он не существует, он создается.
 ‘w +’: откройте файл в режиме чтения-записи. Сначала читайте, потом пишите. Файл обновляется, если он уже существует; если он не существует, он создается.
 ‘a’: добавить данные в конец открытого файла. Если файл не существует, он создается.
 ‘a +’: после открытия файла сначала считайте данные, а затем добавьте данные. Если файл не существует, он создается.
Кроме того, добавьте "t" после этих строк, например,’rt ‘или’wt +’, тогда файл будет открыт в текстовом режиме; если добавлен "b", то Открыть в двоичном формате, который также является методом открытия по умолчанию для функции fopen.

2) Закройте файл
Файл должен быть закрыт вовремя после операций чтения и записи, чтобы избежать потери данных. Используйте функцию fclose, чтобы закрыть файл. Формат вызова:
sta=fclose(fid)
Описание: эта функция закрывает файл, представленный fid. sta представляет собой код возврата операции закрытия файла. Если закрытие прошло успешно, возвращается 0, в противном случае — -1. Если вы хотите закрыть все открытые файлы, используйте fclose («все»).

2. Операции чтения и записи двоичных файлов.

1) Записывать двоичные файлы
Функция fwrite записывает элементы матрицы в файл в соответствии с указанной точностью данных. Формат звонка:
COUNT=fwrite(fid,A,precision)
Описание: COUNT возвращает количество записанных элементов данных (по умолчанию), fid — дескриптор файла, A используется для хранения данных, записанных в файл, precision представляет точность данных, обычно используется Точность данных включает: char, uchar, int, long, float, double и т. Д. По умолчанию точность данных равна uchar, то есть беззнаковому формату символов.
Пример 6.8 Сохранение двоичной матрицы в файл на диске.

a=[1 2 3 4 5 6 7 8 9];
fid = fopen (‘d: \ test.bin’, ‘wb’)% Откройте файл, записав двоичные данные
fid =
3%, значение которого больше 0, что означает успешное открытие

fwrite(fid,a,‘double’)
ans =
9% означает, что записано 9 данных.

fclose(fid)
ans =
0% означает, что выключение прошло успешно.

2) Читать двоичные файлы
Функция fread может считывать данные двоичного файла и сохранять их в матрице. Формат звонка:
[A,COUNT]=fread(fid,size,precision)
Описание: где A — матрица, используемая для хранения считанных данных, COUNT — количество возвращенных элементов данных, fid — дескриптор файла, а размер является необязательным. Если не выбран, Прочитать все содержимое файла; если этот параметр выбран, его значение может быть следующими: N (читать N элементов в вектор-столбец), inf (читать весь файл), [M, N] (читать данные в M × N Данные хранятся в столбцах). Precision используется для контроля точности записываемых данных, и его форма такая же, как у функции fwrite.

3. Операции чтения и записи текстовых файлов.
1) Прочитать текстовый файл
Функция fscanf может считывать содержимое текстового файла и сохранять его в матрице в соответствии с указанным форматом. Формат звонка:
[A,COUNT]=fscanf(fid,format,size)
Описание: A используется для хранения считанных данных, COUNT возвращает количество прочитанных элементов данных, fid — это дескриптор файла, формат используется для управления форматом считанных данных и% В сочетании с символами формата распространенными символами формата являются: d (целое число), f (с плавающей точкой), s (строка), c (символ) и т. Д. Вы также можете вставить дополнительные символы между% и символами формата. Спецификатор формата, например описание ширины данных. Размер не является обязательным, он определяет порядок данных в матрице A. Он может принимать следующие значения: N (чтение N элементов в вектор-столбец), inf (чтение всего файла), [M, N] (чтение данных в В матрице M × N данные хранятся в столбцах).

Использование fscanf в Matlab выглядит следующим образом:
A=fscanf(fid,format)
[A, count]=fscanf(fid,format,size)
[A, count]=fscanf(fid,format,size)

Лично наиболее часто используемая форма такова:
data = fscanf(fid,format,size);
, где данные — это массив прочитанного содержимого, а его размер определяется размером. size — вектор [mn], m — строка, n — столбец (обратите внимание, что здесь порядок чтения — сначала столбец, если вы не понимаете, вы можете увидеть пример ниже), если n — inf, это означает чтение до конца файла. . fid — это возвращаемое значение файла, открытого fopen, а format — это параметр форматирования (например, printf, scanf).

Приведи небольшой пример:
Путь + имя файла: d: \ moon.txt
Содержание: 13,1,3.4

Теперь, чтобы прочитать данные из moon.txt в массиве, вы можете использовать следующий метод:
fid=fopen(‘d:\moon.txt’);
data = fscanf (fid, ’% f,% f,% f’, [3, inf]);% используйте здесь одинарные кавычки
fclose(fid);

На данный момент данные в данных выглядят следующим образом: (3 строки и 4 столбца, элементы MATLAB расположены в порядке столбцов)

Обычно нам может потребоваться ссылка на определенную строку или определенный столбец в массиве, чтобы нарисовать изображение, метод — данные (m, 🙂 или данные (:, n), то есть получить m-ю строку или n-й столбец массива данных.

2) Напишите текстовый файл
Функция fprintf может записывать данные в текстовый файл в указанном формате. Формат звонка:
fprintf(fid,format,A)
Описание: fid — это дескриптор файла, который указывает файл, в который будет выполняться запись. format — это символ формата, используемый для управления форматом записываемых данных, который аналогичен функции fscanf. A используется для хранения данных. матрица.
Пример 6.9. Создайте символьную матрицу и сохраните ее на диск, затем считайте и назначьте другой матрице.

matlab читает текстовый файл
fid=fopen(‘fx.txt’,‘r’);
% получить номер файла
[f,count]=fscanf(fid,’%f %f’,[12,90]);
% Прочитать данные файла номер 1 в f. Где f — матрица [12 90]
% Здесь ’% f% f’ представляет формат чтения данных, которые считываются как исходный тип данных.
fclose(fid);
% Закрыть файл

Кроме того, некоторые файлы txt можно открывать с помощью load
Предложение
f=load(‘fx.txt)
Я лично считаю, что первый способ лучше. Потому что иногда, особенно когда в одной строке fx.txt содержится несколько данных, использование load более проблематично.

4. Расположение файла данных
MATLAB предоставляет функции fseek и ftell, связанные с операциями позиционирования файлов. Функция fseek используется для определения местоположения указателя позиции файла, и ее формат вызова:
status=fseek(fid, offset, origin)
, где fid — дескриптор файла, смещение представляет количество байтов, перемещаемых указателем позиции, а значения OFFSET интерпретируются следующим образом:

0 Move toward the end of the file.
= 0 Do not change position.
< 0 Move toward the beginning of the file.
origin представляет исходную позицию перемещения указателя позиции, значения ORIGIN интерпретируются следующим образом:
‘bof’ or -1 Beginning of file
‘cof’ or 0 Current position in file
‘eof’ or 1 End of file。
Если позиционирование выполнено успешно, возвращаемое значение статуса — 0, в противном случае возвращаемое значение — –1.

Функция ftell возвращает текущую позицию указателя файла, и ее формат вызова:
position=ftell (fid)
Возвращаемое значение — это количество байтов от начала файла до текущей позиции указателя. Если возвращаемое значение равно –1, это означает, что текущая позиция файла не может быть получена.
Пример:
FID=fopen(‘sw.m’,‘r’)
fseek(FID,10,-1)
ans =
0

ftell(FID)
ans =
2180
Указатель файла можно переместить за конец текущего файла, но не перед его началом; когда указатель перемещается за конец файла, если файл закрыт, размер файла автоматически увеличивается до размера файла. Размер, указанный указателем, позволяет легко создать большой файл с помощью этого метода, конечно, содержимое нового добавленного файла является случайным.

[Приложение: Matlab читает исходный код файлов формата grd]
clc;
clear all;
close all;
fid=fopen([‘C:\Zhenghui_Code\testDLL\testForDLL\kms04ssh-egm96u.grd’],‘r’);

head = fread (fid, 4, ‘uint8 => char’) ’;% Прочтите заголовок файла DSAA
fscanf(fid,’\n’);

nx = fscanf (fid, ’% d’, 1);% прочитано количество строк данных сетки nnx, количество столбцов nnz
fp = fseek (fid, 1,0);% 1 означает, что указатель прочитанного файла сдвигается назад на 1 бит, а 0 означает, что указатель перемещается относительно текущей позиции
ny=fscanf(fid,’%d’,1);
fscanf(fid,’\n’);

xmin = fscanf (fid, ’% f’, 1);% считывает минимальное и максимальное значения x
fseek (fid, 4,1);% 4 означает, что указатель прочитанного файла сдвинут назад на 4 бита, 1 означает, что ссылочная позиция перемещения указателя является концом файла
xmax=fscanf(fid,’%f’,1);
fscanf(fid,’\n’);

ymin = fscanf (fid, ’% f’, 1);% считывает минимальное и максимальное значения y
fseek(fid,4,1);
ymax=fscanf(fid,’%f’,1);
fscanf(fid,’\n’);

zmin = fscanf (fid, ’% f’, 1);% считывает минимальное и максимальное значения z
fseek(fid,4,1);
zmax=fscanf(fid,’%f’,1);
fscanf(fid,’\n’);

for i = 1: ny% Обратите внимание, что Matlab хранит данные в порядке столбцов, сначала столбец 1, затем столбец 2, а затем последний столбец.
for m=1:nx
vp(i,m)=fscanf(fid,’%f’,1);
fseek(fid,4,1);
end
fscanf(fid,’\n’);
end

Документация

Чтобы открыть существующий файл или файлы в Редакторе, выберите опцию, которая достигает ваших целей, как описано в этой таблице.

Открытый со связанным инструментом

Откройте файл с помощью соответствующего инструмента MATLAB &#x00AE; для типа файла.

На Editor щелкает Live Editor или вкладка Home, в разделе File .

Также можно дважды кликнуть файл в Браузере текущей папки.

Например, эта опция открывает файл с .m или .mlx расширение в Редакторе и загрузки MAT-файл в браузер Рабочей области.

Открытый как текстовый файл

Откройте файл в Редакторе как текстовый файл, даже если тип файла сопоставлен с другим приложением или инструментом.

На вкладке Editor, в разделе File, нажимают Open и выбирают Open as Text.

Это полезно, например, если вы импортировали разграниченный вкладкой файл данных ( .dat ) в рабочую область и вы находите, что хотите добавить точку данных. Откройте файл как текст в Редакторе, сделайте свое сложение, и затем сохраните файл.

Открытая функция из файла

Zoloto585CPA

Откройте локальную функцию или файл функции из файла в Редакторе.

Расположите курсор на имя в открытом файле, и затем щелкните правой кнопкой и выберите Open file-name из контекстного меню.

Также можно использовать этот метод, чтобы открыть модель Simulink &#x00AE; или переменная.

Для получения дополнительной информации смотрите Открытый Файл или Переменная из Файла.

Вновь откройте файл

Вновь откройте недавно используемый файл.

В нижней части Open выпадающий список выберите файл под Recent Files.

Чтобы изменить количество файлов в списке, нажмите Preferences, и затем выберите MATLAB и Editor/Debugger. Под Most recently used file list, изменение значение для Number of entries.

Вновь откройте файлы при запуске

При запуске автоматически откройте файлы, которые были открыты когда предыдущий законченный сеанс работы с MATLAB.

На вкладке Home, в разделе Environment, нажимают Preferences и выбирают MATLAB и Editor/Debugger. Затем выберите On restart reopen files from previous MATLAB session.

Открытый файл, отображающийся в другом инструменте

Откройте имя файла, отображающееся в другом инструменте рабочего стола MATLAB или инструменте Microsoft &#x00AE; .

Перетащите файл от другого инструмента в Редактор.

Например, перетащите файлы от Браузера текущей папки или из Проводника Windows &#x00AE; .

Открытый файл с помощью функции

Используйте edit или open функция.

Например, введите следующее, чтобы открыть collatz.m :

Если collatz.m не находится на пути поиска файлов или в текущей папке, используйте относительный или абсолютный путь в файле.

Для специальных замечаний на платформе Macintosh смотрите Навигацию В Корневой папке MATLAB на macOS Платформах.

Некоторые опции для вводных файлов не доступны в MATLAB Online .

Сохраните файлы

После того, как вы измените файл в Редакторе, звездочка (*) следует за именем файла. Эта звездочка указывает, что существуют несохраненные изменения в файле.

Можно выполнить четыре различных типов операций сохранения, которые оказывают различные влияния, как описано в этой таблице.

Сохраните файл на диск и сохраните файл открытым в Редакторе.

На вкладке Editor или Live Editor, в разделе File, нажатии кнопки .

Переименуйте файл, сохраните его на диск и сделайте его активным документом Редактора. Исходный файл остается неизменным на диске.

На вкладке Editor или Live Editor, в разделе File, нажимают Save и выбирают Save As.

Задайте новое имя, введите, или и для файла, и затем нажмите Save.

Сохраните файл на диск под новым именем. Исходный файл остается открытым и несохраненным.

На вкладке Editor, в разделе File, нажимают Save и выбирают Save Copy As.

MATLAB открывает диалоговое окно Select File for Backup.

Задайте имя и тип для резервного файла, и затем нажмите Save.

Сохраните изменения во всех открытых файлах с помощью текущих имен файлов.

Все файлы остаются открытыми.

На вкладке Editor, в разделе File, нажимают Save и выбирают Save All.

Некоторые опции для того, чтобы сохранить файлы не доступны в MATLAB Online™ .

Рекомендации на том, чтобы сохранить файлы

MathWorks &#x00AE; рекомендует, чтобы вы сохранили файлы, которые вы создаете и файлы из MathWorks, который вы редактируете к папке, которая не находится в matlabroot дерево папки, где matlabroot папка, возвращенная, когда вы вводите matlabroot в Командном окне. Если вы сохраняете свои файлы в matlabroot папки, они могут быть перезаписаны, когда вы устанавливаете новую версию программного обеспечения MATLAB.

В начале каждого сеанса работы с MATLAB, загрузок MATLAB и кэшей в памяти местоположения файлов в matlabroot дерево папки. Поэтому, если вы:

Сохраните файлы к matlabroot папки с помощью внешнего редактора, запустите rehash toolbox прежде чем вы будете использовать файлы на текущем сеансе.

Добавьте или удалите файлы из matlabroot папки с помощью операций файловой системы, запустите rehash toolbox прежде чем вы будете использовать файлы на текущем сеансе.

Измените существующие файлы в matlabroot папки с помощью внешнего редактора, запустите clear function-name прежде чем вы будете использовать эти файлы на текущем сеансе.

Для получения дополнительной информации смотрите rehash или путь к тулбоксу, кэширующийся в MATLAB.

Поддержка файлов

Когда вы изменяете файл в Редакторе, Редактор сохраняет копию файла с помощью того же имени файла, но с .asv расширение каждые 5 минут. Резервная версия полезна, если вы имеете системные проблемы и теряете изменения, вы сделали к своему файлу. В таком случае можно открыть резервную версию, filename.asv , и затем сохраните его как filename.m использовать последнюю хорошую версию filename .

Примечание

Live Editor и MATLAB Online автоматически не сохраняют копии файлов.

Чтобы выбрать настройки, нажмите Preferences, и затем выберите MATLAB> Editor/Debugger> Backup Files на вкладке Home в разделе Environment. Вы можете затем:

Включите или выключите функцию резервного копирования.

Автоматически удалите резервные файлы, когда вы закроете соответствующий исходный файл.

По умолчанию MATLAB автоматически удаляет резервные файлы, когда вы закрываете Редактор. Лучше держать отношения резервного копирования к файлу в стороне и текущий. Поэтому, когда вы переименовываете или удаляете файл, рассматриваете удаление или переименование соответствующего резервного файла.

Укажите, что номер минут между резервным копированием сохраняет.

Задайте расширение файла для резервных файлов.

Задайте местоположение для резервных файлов

Если вы редактируете файл в папке только для чтения и спине, настройкой Location является Source file directories, то Редактор не создает резервную копию файла.

Zoloto585CPA

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *