14.1.3 Простой ввод/вывод файлов ¶
Команды save и load позволяют записывать и считывать данные из файлов на диске в различных форматах. По умолчанию формат файлов, созданных командой save, можно контролировать с помощью функций save_default_options и save_precision.
В качестве примера, следующий код создает 3x3 матрицу и сохраняет ее в файл ‘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_default_options.Если команда save вызвана в функциональной форме
save ("-option1", ..., "file", "v1", ...)то аргументы options, file и имена переменных (v1, …) должны быть указаны как строковые значения.
Если вызов осуществляется с именем файла
"-", вывод направляется на стандартный вывод, если nargout равно 0, в противном случае возвращается вывод в строке.-append-
Добавление к месту назначения вместо перезаписи.
-ascii-
Сохранение матрицы в текстовом файле без заголовка или любой другой информации. Матрица должна быть двумерной, и только вещественная часть любого комплексного значения записывается в файл. Числа хранятся в формате одинарной точности и разделяются пробелами. Дополнительные опции для формата -ascii:
-double-
Хранение чисел в формате двойной точности.
-tabsРазделение чисел табуляцией.
-binary-
Сохранение данных в двоичном формате Octave.
-float-binary-
Сохранение данных в двоичном формате Octave, но используя только одинарную точность. Используйте этот формат только если вы знаете, что все сохраняемые значения могут быть представлены в одинарной точности.
-hdf5-
Сохранение данных в формате HDF5. (HDF5 — свободный, переносимый, двоичный формат, разработанный Национальным центром суперкомпьютерных приложений в Университете Иллинойса). Этот формат доступен только если Octave был скомпилирован с использованием библиотек HDF5.
-float-hdf5-
Сохранение данных в формате HDF5, но используя только одинарную точность. Используйте этот формат только если вы знаете, что все сохраняемые значения могут быть представлены в одинарной точности.
-text-
Сохранение данных в текстовом формате Octave. (по умолчанию)
-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.
Список переменных для сохранения может использовать шаблоны подстановок (глоб-шаблоны) содержащие следующие специальные символы:
?-
Соответствие одному символу.
*-
Соответствие нулю или более символам.
[ list ]-
Соответствие списку символов, указанных в list. Если первый символ —
!или^, соответствие всем символам, кроме указанных в list. Например, шаблон[a-zA-Z]соответствует всем прописным и строчным буквам.Подстановки также могут использоваться в спецификациях имён полей при использовании модификатора -struct (но не в имени самой структуры).
За исключением использования двоичного формата файлов MATLAB или формата ‘-ascii’, сохранение глобальных переменных также сохраняет глобальный статус переменной. Если переменная восстанавливается позже с помощью ‘load’, она будет восстановлена как глобальная переменная.
Пример:
Команда
save -binary data a b*
сохраняет переменную ‘a’ и все переменные, начинающиеся с ‘b’, в файл data в двоичном формате Octave.
См. также: load, save_default_options, save_header_format_string, save_precision, dlmread, csvread, fread.
Существует три функции, которые изменяют поведение 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 двойной точности; для значений с плавающей запятой IEEE-754 одинарной точности минимальное значение равно 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", …)¶ -
Загрузка указанных переменных v1, v2, …, из файла file.
Если переменные не указаны, загружаются все переменные, найденные в файле. Как и в
save, список переменных для извлечения может содержать полные имена или использовать синтаксис шаблонов. Формат файла автоматически определяется, но может быть переопределён путём указания соответствующей опции.Если команда load вызвана в функциональной форме
load ("-option1", ..., "file", "v1", ...)тогда аргументы options, file и имён переменных (v1, …) должны быть указаны как строки символов.
Если переменная, которая не помечена как глобальная, загружается из файла, когда глобальная переменная с тем же именем уже существует, она загружается в таблицу глобальных символов. Также, если переменная помечена как глобальная в файле, и локальный символ существует, локальный символ перемещается в таблицу глобальных символов и получает значение из файла.
Если вызов содержит единственный выходной аргумент, Octave возвращает данные, вместо вставки переменных в таблицу символов. Если файл данных содержит только числа (разделённые вкладками или пробелами столбцы), возвращается матрица значений. В противном случае,
loadвозвращает структуру с элементами, соответствующими именам переменных в файле.Команда
loadможет читать данные, сохранённые в текстовом и бинарном форматах Octave, и в бинарном формате MATLAB. При компиляции с поддержкой zlib она также может загружать сжатые gzip файлы. Она автоматически определяет тип файла и выполняет преобразование из разных форматов чисел с плавающей точкой (в настоящее время только IEEE big и little endian, хотя другие форматы могут быть добавлены в будущем).Список допустимых опций для
loadпредставлен в следующей таблице.-force-
Эта опция принята для обратной совместимости, но игнорируется. Сейчас Octave перезаписывает переменные в памяти теми, которые найдены с таким же именем в файле.
-ascii-
Принудительно заставляет Octave предполагать, что файл содержит столбцы чисел в текстовом формате без заголовков или другой информации. Данные в файле загружаются как единственная числовая матрица с именем переменной, полученным из имени файла.
-binary-
Принудительно заставляет Octave предполагать, что файл находится в бинарном формате Octave.
-hdf5-
Принудительно заставляет Octave предполагать, что файл находится в формате HDF5. (HDF5 — бесплатный, переносимый бинарный формат, разработанный Национальным центром супервычислений в Университете Иллинойса). Обратите внимание, что Octave может читать файлы HDF5 только, которые были созданы им самим с
saveили с опцией MATLAB’s-v7.3(которая сохраняет в формате HDF5). Этот формат доступен только если Octave был скомпилирован с ссылкой на библиотеки HDF5. -import-
Эта опция принята для обратной совместимости, но игнорируется. Сейчас Octave поддерживает многомерные данные HDF и автоматически изменяет имена переменных, если они являются недопустимыми идентификаторами Octave.
-text-
Принудительно заставляет Octave предполагать, что файл находится в текстовом формате Octave.
-v7.3-V7.3-7.3-
Принудительно заставляет Octave предполагать, что файл находится в бинарном формате MATLAB v7.3. Поскольку формат v7.3 основан на HDF5, эти файлы часто также могут быть открыты с опцией
"-hdf5". Обратите внимание, что Octave не может в настоящее время сохранять в этом формате. -v7-V7-7-mat7-binary-
Принудительно заставляет Octave предполагать, что файл находится в бинарном формате MATLAB версии 7.
-v6-V6-6-mat-mat-binary-
Принудительно заставляет Octave предполагать, что файл находится в бинарном формате MATLAB версии 6.
-v4-V4-4-mat4-binary-
Принудительно заставляет Octave предполагать, что файл находится в бинарном формате MATLAB версии 4.
-
:
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 определяют начальную строку и столбец для чтения данных. Эти значения индексируются с нуля, т. е. первая строка данных соответствует индексу ноль.
Параметр range указывает, какие именно элементы данных нужно прочитать. Первый формат параметра — 4-элементный вектор, содержащий верхний левый и нижний правый углы
[R0,C0,R1,C1], где индексы нумеруются с нуля. Чтобы указать последний столбец — эквивалентendпри индексировании — используйте спецификаторInf. В качестве альтернативы можно использовать форму записи в стиле таблиц, например,"A2..Q15"или"T1:AA5". Наименьший алфавитный индекс'A'соответствует первому столбцу. Наименьший индекс строки — 1.file — это имя файла или идентификатор файла, полученный с помощью
fopen. В последнем случае файл читается до конца.Вариант
"emptyvalue"позволяет указать значение, используемое для заполнения пустых полей. По умолчанию — ноль. Обратите внимание, что любые нечисловые значения, такие как текст, также заменяются на"emptyvalue".
-
:
x =csvread(filename)¶ -
:
x =csvread(filename, dlm_opt1, …)¶ -
Считывает файл с разделителями запятыми (CSV) filename в матрицу 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". Если значение не указано, оно будет выведено из файла. Если установлено значение""(пустая строка), EOL игнорируются в качестве разделителей.
Необязательный ввод 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. -
-
Чтение данных из текстового файла или строки.
Строка 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 строк входных данных было обработано. Ноль (0) — это приемлемое значение для repeat. В настоящее время символы конца строки внутри преобразований %q, %c и %[…]$ не учитываются при подсчёте строк. Это несовместимо с MATLAB и может быть изменено в будущем.
Поведение функции
textscanможет быть изменено с помощью пар свойство/значение. Признаны следующие свойства:"BufSize"-
Это указывает количество байтов для использования внутреннего буфера. Небольшое повышение скорости можно получить, установив это значение большим при чтении большого файла, особенно если входные данные содержат длинные строки. По умолчанию используется 4096, или значение, зависящее от n, если оно указано.
"CollectOutput"-
Значение 1 или true сообщает
textscanо конкатенации последовательных столбцов одного класса в выходном ячейковом массиве. Значение 0 или false (по умолчанию) оставляет вывод в отдельных столбцах. "CommentStyle"-
Укажите части входных данных, которые считаются комментариями и будут пропущены. value — это стиль комментария и может быть (1) строкой или строковой переменной 1x1, чтобы пропустить всё справа от неё; (2) ячейковым массивом из двух строк, чтобы пропустить всё между первой и второй строками. Комментарии анализируются только там, где допускаются пробелы, и не действуют как разделители.
"Delimiter"-
Если value — это строка, любой символ в 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, integer или logical.
© 1996–2023 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.2.0/Simple-File-I_002fO.html