Spec-Zone.ru › Octave 5

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 файл
save параметры файл
save параметры файл v1 v2 …
save параметры файл -struct СТРУКТУРА
save параметры файл -struct СТРУКТУРА f1 f2 …
save - v1 v2 …
str = save ("-", "v1", "v2", …)

Сохраняет перечисленные переменные v1, v2, … в файл файл.

Специальное имя файла ‘-’ может быть использовано для возвращения содержимого переменных в виде строки. Если имена переменных не указаны, Octave сохраняет все переменные в текущем контексте. В противном случае можно использовать полные имена переменных или синтаксис шаблонов для указания переменных для сохранения. Если используется модификатор -struct, то поля скалярной структуры сохраняются как переменные с соответствующими именами полей. Опция -struct может быть объединена со специфическими именами полей f1, f2, … для записи только определённых полей в файл.

Допустимые параметры для команды save перечислены в следующей таблице. Параметры, изменяющие формат вывода, переопределяют формат, заданный save_default_options.

Если команда save вызвана в функциональной форме

save ("-option1", …, "file", "v1", …)

то аргументы параметры, файл и имена переменных (v1, …) должны быть указаны в виде строк.

Если вызов производится с именем файла "-", вывод отправляется в стандартный поток вывода, если nargout равно 0, в противном случае вывод возвращается в строке.

-append

Добавляет данные в файл вместо перезаписи.

-ascii

Сохраняет матрицу в текстовый файл без заголовка или другой информации. Матрица должна быть 2-мерной, и только вещественная часть любого комплексного значения записывается в файл. Числа хранятся в формате с одинарной точностью и разделяются пробелами. Дополнительные параметры для формата -ascii:

-double

Хранить числа в формате с двойной точностью.

-tabs

Разделять числа табуляцией.

-binary

Сохраняет данные в двоичном формате Octave.

-float-binary

Сохраняет данные в двоичном формате Octave, но с использованием только одинарной точности. Используйте этот формат только если известно, что все сохраняемые значения могут быть представлены с одинарной точностью.

-hdf5

Сохраняет данные в формате HDF5. (HDF5 — свободный, переносимый двоичный формат, разработанный Национальным центром супервычислений в Университете Иллинойса.) Этот формат доступен только если Octave был скомпилирован с подключением к библиотекам HDF5.

-float-hdf5

Сохраняет данные в формате HDF5, но с использованием только одинарной точности. Используйте этот формат только если известно, что все сохраняемые значения могут быть представлены с одинарной точностью.

-V7
-v7
-7
-mat7-binary

Сохраняет данные в двоичном формате v7 MATLAB.

-V6
-v6
-6
-mat
-mat-binary

Сохраняет данные в двоичном формате v6 MATLAB.

-V4
-v4
-4
-mat4-binary

Сохраняет данные в двоичном формате версии 4 MATLAB.

-text

Сохраняет данные в текстовом формате Octave (по умолчанию).

-zip
-z

Использует алгоритм сжатия gzip. Это работает с файлами, сжатыми gzip вне Octave, и gzip также может быть использован для преобразования файлов для обратной совместимости. Эта опция доступна только если Octave был скомпилирован с подключением к библиотекам zlib.

Список переменных для сохранения может использовать шаблоны подстановок, содержащие следующие специальные символы:

?

Соответствует любому одиночному символу.

*

Соответствует нулю или более символам.

[ 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)
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)
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)
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.

END_OF_DOCUMENT_MARKER
загрузка файла
загрузка файла опций
загрузка файла опций v1 v2 …
S = load ("options", "file", "v1", "v2", …)
загрузка опций файла
загрузка опций файла 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. Этот формат доступен только если Octave был скомпилирован с ссылкой на библиотеки HDF5.

-import

Эта опция поддерживается для обратной совместимости, но игнорируется. Octave теперь может поддерживать многомерные данные HDF и автоматически изменяет имена переменных, если они являются недопустимыми идентификаторами Octave.

-mat
-mat-binary
-6
-v6
-7
-v7

Принудительно заставляет Octave считать, что файл находится в бинарном формате MATLAB версии 6 или 7.

-mat4-binary
-4
-v4
-V4

Принудительно заставляет Octave считать, что файл находится в бинарном формате, созданном MATLAB версии 4.

-text

Принудительно заставляет Octave считать, что файл находится в текстовом формате Octave.

См. также: save, dlmwrite, csvwrite, fwrite.

str = fileread (filename)

Прочитать содержимое файла filename и вернуть его как строку.

См. также: fread, fscanf, importdata, textscan, type.

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 также может читать и записывать матрицы в текстовые файлы, такие как CSV (Comma Separated Values).

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")

См. также: dlmread, csvread, csvwrite.

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] где индексы начинаются с нуля. В качестве альтернативы можно использовать табличный формат, например "A2..Q15" или "T1:AA5". Самый низкий алфавитный индекс 'A' ссылается на первый столбец. Самый низкий индекс строки - 1.

file должен быть именем файла или идентификатором файла, заданным через fopen. В последнем случае файл читается до конца.

Опция "emptyvalue" может быть использована для задания значения, используемого для заполнения пустых полей. По умолчанию это ноль. Обратите внимание, что любые нечисловые значения, такие как текст, также заменяются на значение "emptyvalue".

См. также: csvread, textscan, dlmwrite.

csvwrite (filename, x)
csvwrite (filename, x, dlm_opt1, …)

Записать числовую матрицу x в файл filename в формате CSV (comma-separated-value).

Эта функция эквивалентна

dlmwrite (filename, x, ",", dlm_opt1, …)

Любые необязательные аргументы передаются непосредственно функции dlmwrite (см. dlmwrite).

См. также: csvread, dlmwrite, dlmread.

x = csvread (filename)
x = csvread (filename, dlm_opt1, …)

Прочитать файл CSV (comma-separated-value) filename в матрицу x.

Примечание: могут быть считаны только CSV файлы, содержащие числовые данные.

Эта функция эквивалентна

x = dlmread (filename, "," , dlm_opt1, …)

Любые необязательные аргументы передаются непосредственно функции dlmread (см. dlmread).

См. также: dlmread, textscan, csvwrite, dlmwrite.

Форматированные данные также могут быть прочитаны из или записаны в текстовые файлы.

[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.

См. также: textscan, load, dlmread, fscanf, strread.

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 строк входных данных были обработаны. Ноль (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 предоставляет положение, в символах от начала файла или строки, где обработка была остановлена.

См. также: dlmread, fscanf, load, strread, textread.

Функция 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 файл

См. также: textscan, dlmread, csvread, load.

• Сохранение данных при непредвиденных выходах:

© 1996–2022 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/v5.2.0/Simple-File-I_002fO.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API