finput

Считайте объекты из файла

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

finput(filename | n, <Encoding = "encodingValue">)
finput(filename | n, <Encoding = "encodingValue">, x1, x2, …)

Описание

finput(filename, x) читает объект MuPAD® из файла и присваивает его идентификатору x.

finput(n, x) читает из файла, сопоставленного с дескриптором файла n.

finput может считать двоичные файлы MuPAD, а также текстовые ASCII-файлы. finput распознает формат файла автоматически.

finput(..., Encoding = "encodingValue", ...) использует заданное кодирование. Для поддерживаемой кодировки см. Опции. Можно использовать эту опцию с любым из ранее заданных синтаксисов.

Двоичные файлы могут быть созданы через fprint или write. Текстовые файлы могут также быть созданы на сеансе MuPAD через эти функции (использующий опцию Text; смотрите соответствующие страницы справки для деталей). Также текстовые файлы могут быть созданы и отредактировали использование напрямую вашего любимого текстового редактора. Файл должен состоять из синтаксически правильных объектов MuPAD или операторов, разделенных точками с запятой или двоеточиями. Объект может расширить больше чем по одной строке.

finput(filename) читает первый объект в файле и возвращает его в сеанс MuPAD.

finput(filename, x1, x2, ...) читает содержимое объекта файла объектом. i-th объект присвоен идентификатору x i. Идентификаторы не оценены при выполнении finput; перезаписываются ранее присвоенные значения. Объекты не оценены. Оценка может быть осуществлена с функциональным eval. Cf. Пример 2.

Вместо имени файла также дескриптор файла может использоваться n файла, открытого через fopen. Функциональность как описана выше. Однако существует одно различие: С именем файла файл закрывается автоматически после того, как данные были считаны. Последующий вызов finput запускается в начале файла. С дескриптором файла файл остается открытым (используйте fclose, чтобы закрыть файл). В следующий раз, когда данные считаны из этого файла, чтение продолжается в текущем положении. Следовательно, дескриптор файла должен использоваться, если отдельные объекты в файле должны быть считаны через несколько последующих вызовов finput. Cf. Пример 3.

Файлы в сжатом формате gzip с именем файла, заканчивающимся в “.gz”, автоматически и прозрачно распаковываются при чтении.

Если количество идентификаторов, заданных в вызове finput, больше, чем количество объектов в файле, дополнительные идентификаторы присвоены значение null().

finput интерпретирует имя файла как путь относительно “рабочей папки”.

Обратите внимание на то, что значение “рабочей папки” зависит от операционной системы. В системах Windows® и в системах Mac OS X, “рабочая папка” является папкой, где MATLAB® установлен. В системах UNIX® это - текущая рабочая папка, в которой был запущен MATLAB. Когда запущено с меню или настольного элемента, это обычно - домашняя папка пользователя.

Также абсолютные пути обрабатываются finput.

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

Примеры

Пример 1

Создайте новый файл во временной папке системы. Имя временной папки отличается для других платформ. Команда fopen с опцией TempFile создает файл во временной папке любой системы (если такая папка существует):

fid := fopen(TempFile, Write, Text):

Запишите числа 11, 22, 33 и 44 в файл:

fprint(fid, 11, 22, 33, 44):

Используйте fname, чтобы возвратить имя временного файла, который вы создали:

file := fname(fid):

Считайте этот файл с finput:

finput(file, x1, x2, x3, x4)

x1, x2, x3, x4

При попытке считать больше объектов, чем сохраненный в файле, finput возвращает пустой объект типа DOM_NULL:

finput(file, x1, x2, x3, x4, x5); domtype(%)

delete x1, x2, x3, x4, x5:

Пример 2

Объекты, считанные из файла, не оценены:

fid := fopen(TempFile, Write, Text):
file := fname(fid):
fprint(file, x1):
x1 := 23:
finput(file)

eval(%)

delete x1:

Пример 3

Считайте некоторые данные из файла с помощью нескольких вызовов finput. Необходимо использовать дескриптор файла для чтения из файла. Файл открыт для чтения с fopen:

fid := fopen(TempFile, Write, Text):
fprint(fid, 11, 22, 33, 44):
file := fname(fid):
n := fopen(file):

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

finput(n, x1, x2): x1, x2

finput(n, x3, x4):
x3, x4

Закройте файл и удалите идентификаторы:

fclose(n):
delete n, x1, x2, x3, x4:

Также содержимое файла может быть считано в сеанс MuPAD следующим образом:

n := fopen(file):
for i from 1 to 4 do
   x.i := finput(n)
end_for:
x1, x2, x3, x4

fclose(n):
delete n, i, x1, x2, x3, x4:

Пример 4

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

fid := fopen(TempFile, Write, Text):
fprint(fid, 11, 22, 33):
file := fname(fid):
finput(file, (x1, x2), x3)
Error: Invalid argument. [finput]

Следующий вызов не приводит к ошибке, потому что идентификатор x12 не оценен. Следовательно, только один объект считан из файла и присвоен x12:

x12 := x1, x2:
finput(file, x12):
x1, x2, x12

delete x1, x2, x12:

Пример 5

Чтобы задать кодирование, чтобы записать данные, используйте Encoding. Опция Encoding применяется только к текстовым файлам, которые открыты с помощью имени файла и не дескриптора файла. Создайте временный файл и сохраните значения "abcäöü", 11 и 22 в кодировании "UTF-8":

fprint(Text, Encoding="UTF-8", "finput_test", "abcäöü", 11, 22):

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

finput("finput_test", Encoding="UTF-8", x1, x2, x3):
x1, x2, x3

Если вы не задаете кодирование, системное кодирование по умолчанию используется. Таким образом ваш вывод может отличаться от показанного затем. Символы, нераспознанные системным кодированием по умолчанию, заменяются символом замены по умолчанию для того кодирования:

finput("finput_test", x1, x2, x3):
x1, x2, x3

Параметры

filename

Имя файла: символьная строка

n

Дескриптор файла обеспечивается fopen: положительное целое число

x1, x2, …

идентификаторы

Опции

Encoding

Эта опция позволяет вам задать кодировку символов, чтобы использовать. Позволенная кодировка:

"Big5"

"ISO-8859-1"

"windows-932"

"EUC-JP"

"ISO-8859-2"

"windows-936"

"GBK"

"ISO-8859-3"

"windows-949"

"KSC_5601"

"ISO-8859-4"

"windows-950"

"Macintosh"

"ISO-8859-9"

"windows-1250"

"Shift_JIS"

"ISO-8859-13"

"windows-1251"

"US-ASCII"

"ISO-8859-15"

"windows-1252"

"UTF-8"

 

"windows-1253"

  

"windows-1254"

  

"windows-1257"

Кодировка по умолчанию системно-зависима. Если вы задаете кодирование неправильно, символы могут читать неправильно. Символы, нераспознанные кодированием, заменяются символом замены по умолчанию для заданного кодирования.

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

Возвращаемые значения

Последний объект, который был считан из файла.

Смотрите также

Функции MuPAD