Spec-Zone.ru › Octave 6

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

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

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

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

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

-append

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

-ascii

Сохраняет матрицу в текстовый файл без заголовка или другой информации. Матрица должна быть 2-мерной, и только вещественная часть любого комплексного значения записывается в файл. Числа хранятся в формате одинарной точности и разделяются пробелами. Дополнительные опции для формата -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 ещё не реализован двоичный формат данных v7.3 от MATLAB.

-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 (но не в самом имени структуры).

За исключением использования двоичного формата файлов 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.

: load файл
: load файл параметров
: load файл параметров v1 v2 …
: S = load ("параметры", "файл", "v1", "v2", …)
: load файл параметров
: load файл параметров v1 v2 …
: S = load ("файл", "параметры", "v1", "v2", …)

Загрузить именованные переменные v1, v2, …, из файла файл.

Если переменные не указаны, будут загружены все переменные, найденные в файле. Как и в save, список переменных для извлечения может содержать полные имена или использовать синтаксис шаблонов. Формат файла автоматически определяется, но может быть переопределён путём указания соответствующего параметра.

Если вызов load осуществляется в функциональной форме

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

то аргументы параметры, файл и имена переменных (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.

-text

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

-v7.3
-V7.3
-7.3

Octave ещё не реализовал двоичный формат данных MATLAB версии 7.3.

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

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

: строка = fileread (имя_файла)

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

См. также: 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 (указатель_на_поток, x)

Отобразить значение x в потоке указатель_на_поток.

Например:

fdisp (stdout, "The value of pi is:"), fdisp (stdout, pi)

     -| the value of pi is:
     -| 3.1416

Обратите внимание, что вывод fdisp всегда заканчивается новой строкой.

См. также: disp.

Octave также может читать и записывать матрицы в текстовые файлы, такие как CSV-файлы.

: dlmwrite (файл, M)
: dlmwrite (файл, M, разделитель, r, c)
: dlmwrite (файл, M, ключ, значение …)
: dlmwrite (файл, M, "-append", …)
: dlmwrite (указатель_на_поток, …)

Записать числовую матрицу M в текстовый файл файл с использованием разделителя.

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

Параметр разделитель определяет разделитель, используемый для разделения значений в строке. Если разделитель не указан, используется запятая ‘,’.

Значение r определяет количество только разделительных строк, которые должны быть добавлены в начало файла.

Значение c определяет количество разделителей, которые нужно добавить перед каждой строкой данных.

Если задан аргумент "-append", данные добавляются в конец файл.

Кроме того, в конце списка аргументов могут появиться следующие пары «ключ-значение»:

"append"

Либо "on" или "off". См. "-append" выше.

"delimiter"

См. разделитель выше.

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

: данные = dlmread (файл)
: данные = dlmread (файл, разделитель)
: данные = dlmread (файл, разделитель, строка0, столбец0)
: данные = dlmread (файл, разделитель, диапазон)
: данные = dlmread (…, "пустое_значение", ПУСТОЕ_ЗНАЧЕНИЕ)

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

Если разделитель не определён, разделитель между полями определяется из самого файла.

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

Параметр диапазон указывает точно, какие элементы данных считываются. Первая форма параметра — вектор из 4 элементов, содержащий верхний левый и нижний правый углы [R0,C0,R1,C1] , где индексы начинаются с нуля. Для указания последнего столбца — эквивалента end при индексировании — используется спецификатор Inf. В качестве альтернативы, можно использовать формат типа таблицы, например, "A2..Q15" или "T1:AA5". Самый низкий алфавитный индекс 'A' относится к первому столбцу. Самый низкий индекс строки — 1.

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

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

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

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

Записать числовую матрицу x в файл filename в формате «разделенные запятыми значения» (CSV).

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

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

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

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

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

Прочитать файл с разделителями запятыми (CSV) 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

Слово анализируется как «строка в кавычках». Если первый символ строки — двойная кавычка ("), то строка включает в себя все символы до соответствующей двойной кавычки — включая пробелы, разделители и символы конца строки. Если в вводе появляется пара последовательных двойных кавычек, она заменяется в выводе одной двойной кавычкой. Например, ввод "Он сказал ""Привет""" вернет значение ‘Он сказал "Привет"’.

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

После импорта данные могут потребоваться преобразовать перед дальнейшим анализом. Функция 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 или логического типа.

См. также: bounds, min, max.

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

© 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/v6.4.0/Simple-File-I_002fO.html

Spec-Zone.ru

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