14.1.3 Простой ввод-вывод файлов
Команды save и load позволяют записывать данные на диск и считывать их из файлов в различных форматах. Формат файлов, записываемых командой save по умолчанию, можно задать с помощью функций save_default_options и save_precision.
Например, следующий код создает матрицу размером 3 на 3 и сохраняет ее в файл ‘myfile.mat’.
A = [ 1:3; 4:6; 7:9 ]; save myfile.mat A
После сохранения одной или нескольких переменных в файле их можно загрузить в память с помощью команды load.
load myfile.mat
A
-| A =
-|
-| 1 2 3
-| 4 5 6
-| 7 8 9 -
: save
file -
: save
options file -
: save
options file v1 v2 … -
: save
options file -struct STRUCT -
: save
options file -struct STRUCT f1 f2 … -
: save
- v1 v2 … -
:
str =save("-","v1","v2", …) -
Сохранить именованные переменные v1, v2, … в файл file.
Если имена переменных не указаны, Octave сохраняет все переменные в текущей области видимости. В противном случае для указания переменных, которые нужно сохранить, можно использовать полные имена переменных или шаблоны. Если используется модификатор -struct, поля скалярной структуры сохраняются так, как если бы они были переменными с соответствующими именами полей. Параметр -struct можно сочетать с именами отдельных полей f1, f2, …, чтобы записать в файл только определенные поля.
Команду
saveтакже можно вызвать в функциональной форме:save ("-option1", ..., "file", "v1", ...)При этом аргументы options, file и имена переменных (v1, …) должны быть указаны в виде символьных строк.
Допустимые параметры команды
saveперечислены в следующей таблице. Параметры, изменяющие формат вывода, имеют приоритет над форматом, заданным с помощьюsave_default_options.-append-
Добавить данные в конец файла, а не перезаписывать его.
-ascii-
Сохранить матрицу в текстовом файле без заголовка и какой-либо другой информации. Матрица должна быть двумерной; в файл записывается только действительная часть комплексных значений. Числа хранятся в формате одинарной точности и разделяются пробелами. Дополнительные параметры для формата -ascii:
-double-
Хранить числа в формате двойной точности.
-tabsРазделять числа символами табуляции.
-binary-
Сохранить данные в двоичном формате Octave.
-float-binary-
Сохранить данные в двоичном формате Octave, используя только одинарную точность. Используйте этот формат только в том случае, если уверены, что все сохраняемые значения можно представить с одинарной точностью.
-hdf5-
Сохранить данные в формате HDF5. (HDF5 — это свободный переносимый двоичный формат, разработанный Национальным центром суперкомпьютерных приложений Иллинойсского университета.) Этот формат доступен, только если Octave был собран со связью с библиотеками HDF5.
-float-hdf5-
Сохранить данные в формате HDF5, используя только одинарную точность. Используйте этот формат только в том случае, если уверены, что все сохраняемые значения можно представить с одинарной точностью.
-text (default)-
Сохранить данные в текстовом формате Octave. Функция
save_precisionзадает количество значащих цифр при сохранении данных (по умолчанию: 17). Формат заголовка текстового файла с данными можно настроить с помощьюsave_header_format_string. -v7.3-V7.3-7.3-
Octave пока не поддерживает сохранение данных в двоичном формате MATLAB v7.3.
-v7-V7-7-mat7-binary-
Сохранить данные в двоичном формате MATLAB v7.
-v6-V6-6-mat-mat-binary-
Сохранить данные в двоичном формате MATLAB v6.
-v4-V4-4-mat4-binary-
Сохранить данные в двоичном формате MATLAB v4.
-zip-zСжать файл с помощью алгоритма gzip. Этот параметр работает с файлами, сжатыми gzip за пределами Octave; gzip также можно использовать для преобразования файлов для обеспечения обратной совместимости. Этот параметр доступен, только если Octave был собран со связью с библиотеками zlib.
В списке переменных для сохранения можно использовать шаблоны подстановки (шаблоны glob), содержащие следующие специальные символы:
?-
Соответствует любому одному символу.
*-
Соответствует нулю или нескольким символам.
[ list ]-
Соответствует списку символов, заданному параметром list. Если первым символом является
!или^, шаблон соответствует всем символам, кроме указанных в list. Например, шаблон[a-zA-Z]соответствует всем строчным и прописным буквам.При использовании модификатора -struct подстановочные символы можно также применять в именах полей (но не в имени структуры).
Примечание для программистов: если в качестве имени файла указано специальное значение
"-", сохраненные данные возвращаются в виде строки, а не записываются в файл.При сохранении глобальных переменных сохраняется также их глобальный статус. Если позднее восстановить переменную с помощью
load, она будет восстановлена как глобальная. Глобальный статус не сохраняется при использовании двоичного формата файла MATLAB или формата -ascii.Пример:
Команда
save -binary data a b*
сохраняет переменную ‘a’ и все переменные, начинающиеся с ‘b’, в файл data в двоичном формате Octave.
См. также: load, save_default_options, save_header_format_string, save_precision, csvwrite, dlmwrite, fwrite.
На поведение save влияют три функции.
-
:
val =save_default_options() -
:
old_val =save_default_options(new_val) -
:
old_val =save_default_options(new_val, "local") -
Запросить или задать внутреннюю переменную, определяющую параметры по умолчанию для команды
save, а также формат по умолчанию.Значение по умолчанию —
"-text"(собственный текстовый формат файлов Octave). Другие варианты см. в документации командыsave.При вызове из функции с параметром
"local"значение переменной изменяется локально для этой функции и вызываемых ею подпрограмм. При выходе из функции восстанавливается исходное значение переменной.См. также: save, save_header_format_string, save_precision.
-
:
val =save_precision() -
:
old_val =save_precision(new_val) -
:
old_val =save_precision(new_val, "local") -
Запросить или задать внутреннюю переменную, определяющую количество цифр, сохраняемых при записи данных в текстовом формате.
Значение по умолчанию — 17; это минимальное значение, необходимое для сохранения и восстановления значений IEEE-754 double без потерь. Для значений IEEE-754 single минимальное значение равно 9. Если размер файла имеет значение, вероятно, лучше выбрать двоичный формат для сохранения данных, чем уменьшать точность сохраняемых значений.
При вызове из функции с параметром
"local"значение переменной изменяется локально для этой функции и вызываемых ею подпрограмм. При выходе из функции восстанавливается исходное значение переменной.См. также: save_default_options.
-
:
val =save_header_format_string() -
:
old_val =save_header_format_string(new_val) -
:
old_val =save_header_format_string(new_val, "local") -
Запросить или задать внутреннюю переменную, определяющую строку формата для строки комментария, записываемой в начало файлов с данными в текстовом формате, сохраняемых Octave.
Строка формата передается в
strftime; она должна начинаться с символа ‘#’ и не должна содержать символов перевода строки. Если значениеsave_header_format_string— пустая строка, заголовочный комментарий не включается в файлы с данными в текстовом формате. Значение по умолчанию:"# Created by Octave VERSION, %a %b %d %H:%M:%S %Y %Z <USER@HOST>"
При вызове из функции с параметром
"local"значение переменной изменяется локально для этой функции и вызываемых ею подпрограмм. При выходе из функции восстанавливается исходное значение переменной.См. также: strftime, save_default_options.
-
: load
file -
: load
options file -
: load
options file v1 v2 … -
:
S =load("options", "file", "v1", "v2", …) -
: load
file options -
: load
file options v1 v2 … -
:
S =load("file", "options", "v1", "v2", …) -
Загрузить из файла file именованные переменные v1, v2, ….
Если переменные не указаны, загружаются все переменные, найденные в файле. В противном случае для указания переменных, которые нужно сохранить, можно использовать полные имена переменных или шаблоны. Формат файла определяется автоматически, но его можно переопределить, указав соответствующий параметр.
Команду
loadтакже можно вызвать в функциональной форме:load ("-option1", ..., "file", "v1", ...)При этом аргументы options, file и имена переменных (v1, …) должны быть указаны в виде символьных строк.
Допустимые параметры команды
loadперечислены в следующей таблице.-ascii-
Принудительно считать, что файл содержит столбцы чисел в текстовом формате без заголовка и другой информации. Данные из файла загружаются в виде одной числовой матрицы, имя переменной формируется из имени файла.
-binary-
Принудительно считать, что файл имеет двоичный формат Octave.
-hdf5-
Принудительно считать, что файл имеет формат HDF5. (HDF5 — это свободный переносимый двоичный формат, разработанный Национальным центром суперкомпьютерных приложений Иллинойсского университета.) Обратите внимание:
loadпредназначена только для чтения файлов HDF5, созданных в Octave с помощьюsave; попытки прочитать другие файлы HDF5 могут завершиться ошибкой или привести к непредсказуемым результатам. Параметр-hdf5позволяет в ограниченной степени читать файлы, созданные с помощью параметра-v7.3в MATLAB (который сохраняет данные в формате HDF5), однако многие типы данных пока не поддерживаются. Этот формат доступен, только если Octave был собран со связью с библиотеками HDF5. -text-
Принудительно считать, что файл имеет текстовый формат Octave.
-v7.3-V7.3-7.3-
Octave пока не поддерживает двоичный формат данных MATLAB v7.3. Поскольку формат v7.3 основан на HDF5, для попытки открыть файл этого формата можно использовать параметр
"-hdf5", хотя большинство нечисловых типов данных пока не поддерживаются. Обратите внимание: в настоящее время Octave не может сохранять данные в этом формате. -v7-V7-7-mat7-binary-
Принудительно считать, что файл имеет двоичный формат версии 7 MATLAB.
-v6-V6-6-mat-mat-binary-
Принудительно считать, что файл имеет двоичный формат версии 6 MATLAB.
-v4-V4-4-mat4-binary-
Принудительно считать, что файл имеет двоичный формат версии 4 MATLAB.
В списке переменных для загрузки можно использовать шаблоны подстановки (шаблоны glob), содержащие следующие специальные символы:
?-
Соответствует любому одному символу.
*-
Соответствует нулю или нескольким символам.
[ list ]-
Соответствует списку символов, заданному параметром list. Если первым символом является
!или^, шаблон соответствует всем символам, кроме указанных в list. Например, шаблон[a-zA-Z]соответствует всем строчным и прописным буквам.
Если команда вызвана с одним выходным аргументом, Octave присваивает загруженные данные этому аргументу, а не помещает переменные в таблицу символов. Если файл с данными содержит только числа (столбцы, разделенные символами табуляции или пробелами), возвращается матрица значений. В противном случае
loadвозвращает структуру с полями, соответствующими именам переменных в файле.Команда
loadможет считывать данные, сохраненные в текстовом и двоичном форматах Octave, двоичном формате MATLAB и многих простых форматах, таких как CSV (значения, разделенные запятыми). Если Octave собран с поддержкой zlib, команда также может загружать файлы, сжатые gzip. Тип файла определяется автоматически; команда преобразует данные из различных форматов с плавающей точкой (в настоящее время поддерживаются только прямой и обратный порядок байтов IEEE, но в будущем могут быть добавлены другие форматы).Примечание для программистов: если из файла загружается переменная, не помеченная как глобальная, а глобальный символ с таким же именем уже существует, переменная загружается в глобальную таблицу символов. Также, если переменная в файле помечена как глобальная, а локальный символ существует, локальный символ перемещается в глобальную таблицу символов и получает значение из файла.
-
:
str =fileread(filename) -
:
str =fileread(filename, param, value, …) -
Считать содержимое filename и вернуть его в виде строки.
param, value — необязательные пары параметров и значений. Допустимые параметры:
"Encoding"Задать кодировку, используемую при чтении файла. Это символьная строка с допустимым идентификатором кодировки. По умолчанию используется
"utf-8".
См. также: fopen, fread, fscanf, importdata, textscan, type.
-
:
fmtstr =native_float_format() Вернуть собственный формат чисел с плавающей точкой в виде строки.
Данные можно записывать в файл так же, как с помощью функции disp данные выводятся на экран. Функция fdisp работает так же, как disp, за исключением того, что ее первый аргумент — это указатель на файл, созданный с помощью fopen. Например, следующий код записывает данные в файл ‘myfile.txt’.
fid = fopen ("myfile.txt", "w");
fdisp (fid, "3/8 is ");
fdisp (fid, 3/8);
fclose (fid); Сведения об использовании fopen и fclose см. в разделе Открытие и закрытие файлов.
-
: fdisp
(fid, x) -
Вывести значение x в поток fid.
Например:
fdisp (stdout, "The value of pi is:"), fdisp (stdout, pi) -| the value of pi is: -| 3.1416Обратите внимание, что вывод
fdispвсегда заканчивается символом перевода строки.См. также: disp.
Octave также может считывать и записывать матрицы в текстовые файлы, например в файлы со списками значений, разделенных запятыми.
-
: dlmwrite
(file, M) -
: dlmwrite
(file, M, delim, r, c) -
: dlmwrite
(file, M, key, val …) -
: dlmwrite
(file, M, "-append", …) -
: dlmwrite
(fid, …) -
Записать числовую матрицу M в текстовый файл file, используя разделитель.
file должен быть именем файла или идентификатором доступного для записи файла, полученным с помощью
fopen.Параметр delim задает разделитель значений в строке. Если разделитель не указан, используется запятая ‘,’.
Параметр r задает количество строк, содержащих только разделители, которые нужно добавить в начало файла.
Параметр c задает количество разделителей, добавляемых в начало каждой строки данных.
Если указан аргумент
"-append", данные добавляются в конец file.Кроме того, в конце списка аргументов можно указать следующие пары «ключевое слово — значение»:
"append"-
Либо
"on", либо"off". См. выше"-append". "delimiter"-
См. выше описание delim.
"newline"-
Символ или символы, разделяющие строки. Для этого параметра предусмотрены три специальных случая:
"unix"преобразуется в"\n","pc"преобразуется в"\r\n", а"mac"преобразуется в"\r". Любое другое значение используется напрямую в качестве разделителя строк. "roffset"-
См. выше описание r.
"coffset"-
См. выше описание c.
"precision"Точность, используемая при записи файла. Можно указать строку формата (как в fprintf) или количество значащих цифр.
dlmwrite ("file.csv", reshape (1:16, 4, 4));dlmwrite ("file.tex", a, "delimiter", "&", "newline", "\n")
-
:
data =dlmread(file) -
:
data =dlmread(file, sep) -
:
data =dlmread(file, sep, r0, c0) -
:
data =dlmread(file, sep, range) -
:
data =dlmread(…, "emptyvalue", EMPTYVAL) -
Считать числовые данные из текстового файла file, в котором значения данных разделены символом sep.
Если sep не задан, разделитель полей определяется по содержимому файла.
Необязательные скалярные аргументы r0 и c0 задают начальные строку и столбец считываемых данных. Отсчет ведется с нуля, то есть первой строке данных соответствует индекс 0.
Параметр range точно задает считываемые элементы данных. В первой форме параметр представляет собой вектор из 4 элементов, содержащий координаты верхнего левого и нижнего правого углов
[R0,C0,R1,C1], где индексы отсчитываются с нуля. Чтобы указать последний столбец — эквивалентendпри индексировании — используйте обозначениеInf. Также можно использовать форму, принятую в электронных таблицах, например"A2..Q15"или"T1:AA5". Самый ранний буквенный индекс'A'соответствует первому столбцу. Индексация строк начинается с 1.file должно быть именем файла или идентификатором файла, полученным с помощью
fopen. В последнем случае файл считывается до достижения конца.С помощью параметра
"emptyvalue"можно задать значение, которым будут заполняться пустые поля. По умолчанию используется ноль. Обратите внимание: любые нечисловые значения, например текст, также заменяются значением"emptyvalue".
-
: csvwrite
(filename, x) -
: csvwrite
(filename, x, dlm_opt1, …) -
Записать числовую матрицу x в файл filename в формате CSV (значения, разделенные запятыми).
Эта функция эквивалентна следующему выражению:
dlmwrite (filename, x, ",", dlm_opt1, ...)
Все необязательные аргументы напрямую передаются функции
dlmwrite(см.dlmwrite).
-
:
x =csvread(filename) -
:
x =csvread(filename, dlm_opt1, …) -
Считать файл filename в формате CSV (значения, разделенные запятыми) в матрицу x.
Примечание: считывать можно только файлы CSV, содержащие числовые данные.
Эта функция эквивалентна следующему выражению:
x = dlmread (filename, "," , dlm_opt1, ...)
Все необязательные аргументы напрямую передаются функции
dlmread(см.dlmread).
Форматированные данные также можно считывать из текстовых файлов и записывать в них.
-
:
[a, …] =textread(filename) -
:
[a, …] =textread(filename, format) -
:
[a, …] =textread(filename, format, n) -
:
[a, …] =textread(filename, format, prop1, value1, …) -
:
[a, …] =textread(filename, format, n, prop1, value1, …) -
Эта функция устарела. Вместо неё используйте
textscan.Считывает данные из текстового файла.
Файл filename считывается и анализируется в соответствии с форматом format. Функция работает как
strread, но анализирует файл, а не строку. Подробности см. в документации кstrread.Помимо параметров, поддерживаемых
strread, эта функция поддерживает ещё два параметра:-
"headerlines": Пропускается указанное параметром value количество первых строк файла filename. -
"endofline": Задаёт один символ или"\r\n". Если значение не задано, оно определяется по файлу. Если задано значение""(пустая строка), символы конца строки не считаются разделителями.
Необязательный входной параметр n (число повторений формата) задаёт, сколько раз следует использовать строку формата или сколько строк нужно считать — в зависимости от того, что наступит раньше. Первый вариант эквивалентен запросу на возврат выходных векторов данных длины N. Обратите внимание: при чтении файлов со строками формата, ссылающимися на несколько строк, параметр n должен задавать количество считываемых строк, а не количество использований строки формата.
Если строка формата пуста (а не просто опущена), а файл содержит только числовые данные (без строк заголовка), функция textread возвращает прямоугольную матрицу, число столбцов которой соответствует количеству числовых полей в первой строке данных файла. Пустые поля возвращаются как нулевые значения.
Примеры:
Assume a data file like: 1 a 2 b 3 c 4 d 5 e
[a, b] = textread (f, "%f %s") returns two columns of data, one with doubles, the other a cellstr array: a = [1; 2; 3; 4; 5] b = {"a"; "b"; "c"; "d"; "e"}[a, b] = textread (f, "%f %s", 3) (read data into two culumns, try to use the format string three times) returns a = [1; 2; 3] b = {"a"; "b"; "c"}With a data file like: 1 a 2 b [a, b] = textread (f, "%f %s", 2) returns a = 1 and b = {"a"}; i.e., the format string is used only once because the format string refers to 2 lines of the data file. To obtain 2x1 data output columns, specify N = 4 (number of data lines containing all requested data) rather than 2. -
-
:
C =textscan(fid, format) -
:
C =textscan(fid, format, repeat) -
:
C =textscan(fid, format, param, value, …) -
:
C =textscan(fid, format, repeat, param, value, …) -
:
C =textscan(str, …) -
:
[C, position, errmsg] =textscan(…) -
Считывает данные из текстового файла или строки.
Строка str или файл, связанный с fid, считывается и анализируется в соответствии с форматом format. Эта функция расширяет возможности
strreadиtextread. Отличия включают возможность считывать данные как из файла, так и из строки, дополнительные параметры и дополнительные спецификаторы формата.Входные данные интерпретируются как последовательность слов, разделителей (например, пробелов) и литералов. Символы, служащие разделителями и пробельными символами, определяются параметрами. Формат состоит из спецификаторов формата, перемежающихся с литералами. В формате пробельные символы служат разделителями между последовательными литералами, но в остальных случаях игнорируются.
Выходной параметр C — это массив ячеек, число столбцов которого определяется количеством спецификаторов формата.
Первое слово входных данных сопоставляется с первым спецификатором формата и помещается в первый столбец выходных данных; второе слово сопоставляется со вторым спецификатором и помещается во второй столбец и так далее. Если слов больше, чем спецификаторов, процесс повторяется, пока не будут обработаны все слова или не будет достигнут предел, заданный параметром repeat (см. ниже).
Строка format описывает, как следует анализировать слова в str. Как и в fscanf, любой текст формата (кроме пробельных символов), не являющийся одним из этих спецификаторов, считается литералом. Если между двумя спецификаторами формата находится литерал, тот же литерал должен присутствовать во входном потоке между соответствующими словами.
Допустимы следующие спецификаторы:
%f%f64%n-
Слово анализируется как число и преобразуется в тип double.
%f32-
Слово анализируется как число и преобразуется в тип single (float).
%d%d8%d16%d32%d64-
Слово анализируется как число и преобразуется в тип int8, int16, int32 или int64. Если размер не задан, используется int32.
%u%u8%u16%u32%u64-
Слово анализируется как число и преобразуется в тип uint8, uint16, uint32 или uint64. Если размер не задан, используется uint32.
%s-
Слово анализируется как строка, заканчивающаяся последним символом перед пробельным символом, концом строки или разделителем, заданным в параметрах.
%q-
Слово анализируется как «строка в кавычках». Если первый символ строки — двойная кавычка ("), строка включает все символы до соответствующей закрывающей двойной кавычки, включая пробельные символы, разделители и символы конца строки. Если во входных данных встречается пара последовательных двойных кавычек, в выходных данных она заменяется одной двойной кавычкой. Например, для входных данных "He said ""Hello""" будет возвращено значение ’He said "Hello"’.
%c-
Считывается следующий символ входных данных. Это могут быть разделители, пробельные символы и символы конца строки.
%[…]%[^…]-
В первой форме слово состоит из самой длинной последовательности символов, входящих в квадратные скобки. Диапазоны символов можно задавать с помощью дефиса; например, %[0-9a-zA-Z] соответствует всем буквенно-цифровым символам (если используется набор символов ASCII). Поскольку MATLAB интерпретирует дефисы буквально, такое расширение применяется только к буквенно-цифровым символам. Чтобы включить ’-’ в набор, его следует поместить первым или последним в скобках; чтобы включить ’]’, его следует поместить первым. Если первый символ — ’^’, слово состоит из символов, не перечисленных в скобках.
%N…-
Для %s, %c, %d, %f, %n и %u можно задать необязательную ширину в виде %Ns и т. п., где N — целое число > 1. Для %c это означает, что будет считано ровно N символов вместо одного. Для остальных спецификаторов это верхний предел количества считываемых символов; обычные разделители могут привести к тому, что символов будет считано меньше. Для комплексных чисел это ограничение применяется отдельно к действительной и мнимой частям. Для %f и %n допустимы спецификаторы формата вида %N.Mf, где M — верхний предел количества учитываемых символов после десятичной точки; последующие цифры пропускаются. Например, спецификатор %8.2f считает 12.345e6 как 1.234e7.
%*…-
Слово, заданное оставшейся частью спецификатора преобразования, пропускается.
literalsКроме того, формат может содержать строки из буквальных символов; они пропускаются при чтении. Если входная строка не соответствует этому литералу, обработка завершается.
Проанализированные слова, соответствующие первому спецификатору, возвращаются в первом выходном аргументе; аналогично возвращаются значения для остальных спецификаторов.
По умолчанию, если задан только один входной аргумент, format имеет значение
"%f". Это означает, что числа считываются из входных данных в один вектор-столбец. Если для format явно задано пустое значение (""), textscan возвращает данные в количестве столбцов, соответствующем числу полей в первой строке данных входных данных. Оба варианта подходят только для входных данных, состоящих исключительно из чисел.Например, строку
str = "\ Bunny Bugs 5.5\n\ Duck Daffy -7.5e-5\n\ Penguin Tux 6"
можно считать с помощью
a = textscan (str, "%s %s %f");
Необязательный числовой аргумент repeat можно использовать для ограничения количества считываемых элементов:
- -1
-
Считать всю строку или весь файл до конца (по умолчанию).
- N
Считывать данные до наступления одного из двух условий: 1) формат обработан N раз или 2) обработано N строк входных данных. Допустимое значение repeat — ноль (0). В настоящее время символы конца строки внутри преобразований %q, %c и %[…]$ не учитываются при подсчёте строк. Это поведение несовместимо с MATLAB и может измениться в будущем.
Поведение
textscanможно изменить с помощью пар «свойство/значение». Распознаются следующие свойства:"BufSize"-
Задаёт количество байтов внутреннего буфера. При чтении большого файла можно добиться небольшого повышения скорости, задав большое значение, особенно если входные данные содержат длинные строки. Значение по умолчанию — 4096 или значение, зависящее от n, если он задан.
"CollectOutput"-
Значение 1 или true указывает
textscanобъединять в выходном массиве ячеек соседние столбцы одного класса. Значение 0 или false (по умолчанию) оставляет выходные данные в отдельных столбцах. "CommentStyle"-
Задаёт части входных данных, считающиеся комментариями и пропускаемые при чтении. value задаёт стиль комментария и может быть: (1) строкой или строкой в ячейке размером 1x1 — пропускается всё справа от неё; (2) массивом ячеек из двух строк — пропускается всё между первой и второй строками. Комментарии анализируются только там, где допускаются пробельные символы, и не считаются разделителями.
"Delimiter"-
Если value — строка, любой символ из неё используется для разделения входных данных на слова. Если value — массив ячеек со строками, для разделения входных данных на слова используется любая строка из массива. (Значение по умолчанию — любые пробельные символы.)
"EmptyValue"-
Значение, возвращаемое для пустых числовых значений в данных, где в качестве разделителей используются не пробельные символы. Значение по умолчанию — NaN. Если тип данных не поддерживает NaN (например, int32), значением по умолчанию является ноль.
"EndOfLine"-
value может быть пустым значением или одним символом, задающим символ конца строки, либо парой
"\r\n"(CRLF). В последнем случае любой из символов"\r","\n"или"\r\n"считается одним символом новой строки. Если значение не задано, используется"\r\n". "HeaderLines"-
Пропускается указанное параметром value количество первых строк fid. Обратите внимание: пропускаются не первые строки без комментариев, а первые строки любого типа.
"MultipleDelimsAsOne"-
Если value не равно нулю, последовательности смежных разделителей без пробельных символов между ними считаются одним разделителем. Смежные последовательности разделителей не обязаны выравниваться по вертикали. Без этого параметра одиночный разделитель перед концом строки не приводит к тому, что строка считается заканчивающейся пустым значением; однако одиночный разделитель в начале строки приводит к тому, что строка считается начинающейся с пустого значения.
"TreatAsEmpty"-
Считать отдельные вхождения строк из value, окружённые разделителями или пробельными символами, отсутствующими значениями.
"ReturnOnError"-
Если задано числовое значение 1 или true, функция возвращает результат обычным образом сразу после обнаружения ошибки, например при попытке считать строку с помощью
%f. Если задано значение 0 или false, возвращается ошибка и никакие данные не возвращаются. "Whitespace"-
Любой символ из value интерпретируется как пробельный и удаляется по краям; значение по умолчанию для пробельных символов —
" \b\r\n\t"(обратите внимание на пробел). Если для пробельных символов задано значение""(пустое) и при этом указан хотя бы один спецификатор преобразования формата"%s", пробел всё равно всегда считается пробельным символом.
Если количество слов в str или fid не кратно количеству спецификаторов преобразования формата, поведение
textscanзависит от того, является ли последний символ строки или файла символом конца строки, заданным параметромEndOfLine:- последний символ — конец строки
-
Столбцы данных дополняются пустыми полями, NaN или 0 (для целочисленных полей), чтобы все столбцы имели одинаковую длину
- последний символ не является концом строки
Столбцы данных не дополняются;
textscanвозвращает столбцы разной длины
Второй выходной параметр position указывает позицию в символах от начала файла или строки, на которой остановилась обработка.
Функция importdata позволяет работать с самыми разными данными.
-
:
A =importdata(fname) -
:
A =importdata(fname, delimiter) -
:
A =importdata(fname, delimiter, header_rows) -
:
[A, delimiter] =importdata(…) -
:
[A, delimiter, header_rows] =importdata(…) -
Импортирует данные из файла fname.
Входные параметры:
- fname Имя файла, содержащего данные.
-
delimiter Символ, разделяющий столбцы данных. Для табуляции используйте
\t. (Допустимо только для файлов ASCII.) - header_rows Количество строк заголовка перед началом данных. (Допустимо только для файлов ASCII.)
Поддерживаются файлы следующих типов:
- Таблица ASCII
Импортирует таблицу ASCII с указанным количеством строк заголовка и указанным разделителем.
- Файл изображения
- Файл MATLAB
- Файлы электронных таблиц (в зависимости от внешнего программного обеспечения)
- Файл WAV
После импорта данные может потребоваться преобразовать перед дальнейшим анализом. Функция rescale может сдвигать и нормализовать набор данных до заданного диапазона.
-
:
B =rescale(A) -
:
B =rescale(A, l, u) -
:
B =rescale(…, "inputmin", inmin) -
:
B =rescale(…, "inputmax", inmax) -
Масштабирует элементы матрицы до заданного диапазона значений.
При вызове с одним аргументом-матрицей A элементы масштабируются так, чтобы попасть в интервал [0, 1].
Необязательные входные параметры
[l, u]масштабируют A до интервала с нижней границей l и верхней границей u.Необязательный входной параметр
"inputmin"заменяет все элементы, меньшие заданного значения inmin, на inmin. Аналогично, необязательный входной параметр"inputmax"заменяет все элементы, большие заданного значения inmax, на inmax. Если эти параметры не заданы, минимальное и максимальное значения определяются по самим данным (inmin = min (A(:))иinmax = max (A(:))).Примечания по программированию: применяется следующая формула:
B = l + ((A - inmin) ./ (inmax - inmin)) .* (u - l)
Класс выходной матрицы B — single, если входной параметр A имеет класс single; в остальных случаях для входных данных класса double, целочисленного или логического типа используется класс double.
© 1996–2026 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.4.0/Simple-File-I_002fO.html