14.1.3 シンプルなファイルI/O
およびコマンドを使用するsaveとload、さまざまな形式でディスク ファイルにデータを書き込んだり、ディスク ファイルからデータを読み取ったりできます。saveコマンドによって書き込まれるファイルのデフォルトの形式は、関数 save_default_optionsとを使用して制御できますsave_precision。
例として、次のコードは3行3列の行列を作成し、それをファイル「マイファイル.mat'。
A = [ 1:3; 4:6; 7:9 ]; save myfile.mat A
1 つ以上の変数をファイルに保存したら、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は現在のスコープ内のすべての変数を保存します。それ以外の場合は、完全な変数名またはパターン構文を使用して保存する変数を指定できます。-構造体修飾子が使用されると、スカラー構造体のフィールドは対応するフィールド名を持つ変数であるかのように保存されます。-構造体オプションを特定のフィールド名f1、f2、… と組み合わせて、特定のフィールドのみをファイルに書き込むことができます。
このsaveコマンドは関数形式を使用して呼び出すこともできる。
save ("-option1", ..., "file", "v1", ...)
ここで、オプション、ファイル、変数名引数 ( v1、…) は文字列として指定する必要があります。
コマンドの有効なオプションはsave次の表に示されています。出力形式を変更するオプションは、 で指定された形式を上書きします save_default_options。
-append
上書きするのではなく、ファイルに追加します。
-ascii
ヘッダーやその他の情報なしで行列をテキストファイルに保存します。行列は2次元でなければならず、複素数値の実数部のみがファイルに書き込まれます。数値は単精度形式で保存され、スペースで区切られます。-アスキーフォーマットは
-double
数値を倍精度形式で保存します。
-tabs
数字はタブで区切ります。
-binary
データを Octave のバイナリ データ形式で保存します。
-float-binary
単精度のみを使用して、Octave のバイナリ データ形式でデータを保存します。保存するすべての値が単精度で表現できることがわかっている場合に のみ、この形式を使用します。
-hdf5
データをHDF5形式で保存します。( HDF5 は、イリノイ大学の National Center for Supercomputing Applications によって開発された、無料のポータブル バイナリ形式です。) この形式は、Octave がHDF5ライブラリへのリンクを使用してビルドされた場合にのみ使用できます。
-float-hdf5
単精度のみを使用してHDF5形式でデータを保存します。保存するすべての値が単精度で表現できることがわかっている場合に のみ、この形式を使用します。
-text (default)
データを Octave のテキスト データ形式で保存します。この save_precision関数は、データを保存するときに使用する有効桁数を指定します (デフォルト: 17)。テキスト データ ファイルのヘッダーは で設定できます save_header_format_string。
-v7.3 -V7.3 -7.3
Octave はまだMATLABの v7.3 バイナリ データ形式 での保存を実装していません。
-v7 -V7 -7 -mat7-binary
データをMATLABの v7 バイナリ データ形式で保存します。
-v6 -V6 -6 -mat -mat-binary
データをMATLABの v6 バイナリ データ形式で保存します。
-v4 -V4 -4 -mat4-binary
データをMATLABの v4 バイナリ データ形式で保存します。
-zip -z
gzip アルゴリズムを使用してファイルを圧縮します。これは、Octave の外部で gzip を使用して圧縮されたファイルに対して機能します。また、gzip を使用して下位互換性のためにファイルを変換することもできます。このオプションは、Octave が zlib ライブラリへのリンクを使用してビルドされた場合にのみ使用できます。
保存する変数のリストでは、次の特殊文字を含むワイルドカード パターン (glob パターン) を使用できます。
?
任意の 1 文字と一致します。
* [#ga0db1d8]
0 個以上の文字と一致します。
[ list ]
listで指定された文字のリストと一致します。最初の文字が!または の場合、 list^で指定された文字を除くすべての文字と一致します 。たとえば、パターンはすべての小文字と大文字のアルファベット文字と一致します。 [a-zA-Z]
フィールド名の指定ではワイルドカードも使用できます。 -構造体修飾子(ただし構造体名自体にはありません)。
プログラミング ノート: 特別なファイル名で呼び出された場合、"-"保存されるデータは実際のファイルに書き込まれるのではなく、文字列として返されます。
グローバル変数を保存すると、変数のグローバルステータスも保存されます。変数が後で を使用して復元されるとload、グローバル変数として復元されます。MATLABバイナリデータファイル形式または-アスキー形式。
例:
コマンド
バイナリデータを保存する ab*
変数「1つの' および ' で始まるすべての変数b' ファイルにデータOctave のバイナリ形式です。
The command
save -binary data a b*
変数「1つの' および ' で始まるすべての変数b' ファイルにデータOctave のバイナリ形式です。
See also: load, save_default_options, save_header_format_string, save_precision, csvwrite, dlmwrite, fwrite.
saveの動作を変更する関数が 3 つあります。
: val = save_default_options ()
: old_val = save_default_options (new_val)
: old_val = save_default_options (new_val, "local")
コマンドのデフォルト オプションを指定しsave、デフォルトの形式を定義する内部変数を照会または設定します。
デフォルト値は"-text"(Octave 独自のテキストベースのファイル形式) です。save他の選択肢については、コマンドのドキュメントを参照してください。
オプションを使用して関数内から呼び出されると"local"、関数とそれが呼び出すサブルーチンに対して変数がローカルに変更されます。関数を終了すると、元の変数値が復元されます。
See also: 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"、関数とそれが呼び出すサブルーチンに対して変数がローカルに変更されます。関数を終了すると、元の変数値が復元されます。
See also: 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空の文字列の場合、テキスト形式のデータファイルではヘッダーコメントは省略されます。デフォルト値は
"# Octave VERSION によって作成されました、%a %b %d %H:%M:%S %Y %Z <USER@HOST>"
オプションを使用して関数内から呼び出されると"local"、関数とそれが呼び出すサブルーチンに対して変数がローカルに変更されます。関数を終了すると、元の変数値が復元されます。
See also: 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", …)
vファイルfileから名前付き変数v1、v2 、… を読み込みます。
変数が指定されていない場合は、ファイル内にあるすべての変数が読み込まれます。それ以外の場合は、完全な変数名またはパターン構文を使用して、保存する変数を指定できます。ファイルの形式は自動的に検出されますが、適切なオプションを指定することで上書きできます。
このloadコマンドは関数形式を使用して呼び出すこともできる。
ロード ("-option1", ..., "file", "v1", ...)
ここで、オプション、ファイル、変数名引数 ( v1、…) は文字列として指定する必要があります。
有効なオプションはload次の表にリストされています。
-ascii
ファイルにヘッダーやその他の情報のないテキスト形式の数値の列が含まれていると Octave に想定させます。ファイル内のデータは、ファイル名から派生した変数名を持つ単一の数値行列としてロードされます。
-binary
ファイルが Octave のバイナリ形式であると想定するように Octave を強制します。
-hdf5
ファイルがHDF5形式であると仮定するように Octave に強制します。( HDF5 は、イリノイ大学の National Center for Supercomputing Applications によって開発された、無料のポータブル バイナリ形式です。) は、 Octave によって を使用して作成されたHDF5loadファイルのみを読み取るように設計されていることに注意してください。他のHDF5ファイルを読み取ろうとすると、失敗したり、予期しない結果が生じたりする可能性があります。このオプションでは、 MATLABのオプション ( HDF5形式で保存) を使用して作成されたファイルを限定的に読み取ることができますが、多くのデータ タイプはまだサポートされていません。この形式は、Octave がHDF5ライブラリ へのリンクを使用してビルドされた場合にのみ使用できます。save-hdf5-v7.3
-text
ファイルが Octave のテキスト形式であると想定するように Octave を強制します。
-v7.3 -V7.3 -7.3
Octave はまだMATLABの v7.3 バイナリ データ形式を実装していません。v7.3 形式はHDF5ベースの形式であるため、このオプションを使用して v7.3 形式のファイルを開こうとすることはできますが、ほとんどの非数値データ型はまだサポートされていません。Octave は現在この形式で保存できないことに注意してください。 "-hdf5"
-v7 -V7 -7 -mat7-binary
ファイルがMATLABバージョン 7 のバイナリ形式であると Octave に想定させます。
-v6 -V6 -6 -mat -mat-binary
ファイルがMATLABバージョン 6 のバイナリ形式であると Octave に想定させます。
-v4 -V4 -4 -mat4-binary
ファイルがMATLABバージョン 4 のバイナリ形式であると Octave に想定させます。
ロードする変数のリストでは、次の特殊文字を含むワイルドカード パターン (glob パターン) を使用できます。
?
任意の 1 文字と一致します。
* [#y31d862d]
0 個以上の文字と一致します。
[ list ]
listで指定された文字のリストと一致します。最初の文字が!または の場合、 list^で指定された文字を除くすべての文字と一致します 。たとえば、パターンはすべての小文字と大文字のアルファベット文字と一致します。 [a-zA-Z]
単一の出力引数で呼び出された場合、Octave はシンボル テーブルに変数を挿入する代わりに、ロードされたデータを出力に割り当てます。データ ファイルに数値 (タブまたはスペースで区切られた列) のみが含まれている場合は、値のマトリックスが返されます。それ以外の場合は、loadファイル内の変数の名前に対応するメンバーを持つ構造体を返します。
このloadコマンドは、Octave のテキストおよびバイナリ形式、MATLABのバイナリ形式、およびコンマ区切り値 (CSV) などの多くの単純な形式で保存されたデータを読み取ることができます。zlib サポートでコンパイルされている場合は、gzip 圧縮ファイルも読み込むことができます。ファイルの種類を自動的に検出し、さまざまな浮動小数点形式 (現在は IEEE ビッグ エンディアンとリトルエンディアンのみ、将来的には他の形式が追加される可能性があります) からの変換を行います。
プログラミング ノート: 同じ名前のグローバル シンボルがすでに存在する場合に、グローバルとしてマークされていない変数がファイルからロードされると、その変数はグローバル シンボル テーブルにロードされます。また、ファイル内で変数がグローバルとしてマークされていて、ローカル シンボルが存在する場合、ローカル シンボルはグローバル シンボル テーブルに移動され、ファイルから値が与えられます
See also: save, csvread, dlmread, fread, textscan.
: str = fileread (filename)
: str = fileread (filename, param, value, …)
ファイル名の内容を読み取り、文字列として返します。
param、value は、オプションのパラメータと値のペアです。有効なオプションは次のとおりです。
"Encoding"
ファイルから読み取るときに使用するエンコーディングを指定します。これは有効なエンコーディング識別子の文字列です。デフォルトは です "utf-8"。
See also: fopen, fread, fscanf, importdata, textscan, type.
: fmtstr = native_float_format ()
ネイティブ浮動小数点形式を文字列として返します。
disp画面にデータを書き込む関数と同様の方法で、ファイルにデータを書き込むことができます 。 は、最初の引数が によって作成されたファイルポインタであることを除いて、 とfdisp 同じように動作します。例として、次のコードはデータ ' に書き込みます。dispfopen私のファイル.txt'。‘myfile.txt’.
fid = fopen ("myfile.txt", "w");
fdisp (fid, "3/8 is ");
fdisp (fid, 3/8);
fclose (fid);
および の使用方法の詳細については、「ファイルのオープンとクローズ」を参照してください。 fopenfclose
: fdisp (fid, x)
ストリームfidにxの値を表示します。
例えば:
fdisp (stdout, "The value of pi is:"), fdisp (stdout, pi)
-| the value of pi is:
-| 3.1416
出力はfdisp常に改行で終わることに注意してください。
See also: disp.
Octave は、コンマ区切りリストなどの行列テキスト ファイルを読み書きすることもできます。
: dlmwrite (file, M)
: dlmwrite (file, M, delim, r, c)
: dlmwrite (file, M, key, val …)
: dlmwrite (file, M, "-append", …)
: dlmwrite (fid, …)
区切り文字を使用して 数値行列Mをテキスト ファイルファイルに書き込みます。
ファイルは、 によって指定されたファイル名または書き込み可能なファイル ID である必要がありますfopen。
パラメータdelim は、行の値を区切るために使用する区切り文字を指定します。区切り文字が指定されていない場合は、カンマ文字 '、' が使用されます。
rの値は、ファイルの先頭に追加する区切り文字のみの行の数を指定します。
cの値は、データの各行の先頭に追加する区切り文字の数を指定します。
引数が指定された場合は、ファイル"-append"の末尾に追加します。
さらに、次のキーワード値のペアが引数リストの最後に現れることがあります。
"append"
または"on"。上記を"off"参照してください"-append"。
"delimiter"
上記のdelimを参照してください。
"newline"
各行を区切る文字。このオプションには 3 つの特殊なケースがあります。 "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")
See also: 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)
データ値の間に 区切り文字 sepを使用するテキスト ファイルファイルから数値データを読み取ります。
sepが定義されていない場合、フィールド間の区切り文字はファイル自体から決定されます。
オプションのスカラー引数r0とc0 は、読み取るデータの開始行と列を定義します。これらの値は 0 からインデックス付けされます。つまり、最初のデータ行は 0 のインデックスに対応します。
範囲パラメータは、読み取るデータ要素を正確に指定します。パラメータの最初の形式は、 インデックスが 0 ベースの左上隅と右下隅を含む 4 要素のベクトルです。最後の列を指定するには (インデックス付けの場合と同等)、指定子 を使用します。または、や などのスプレッドシート スタイルの形式を使用することもできます。最も小さいアルファベット順のインデックスは、最初の列を参照します。最も小さい行のインデックスは 1 です。 [R0,C0,R1,C1]endInf"A2..Q15""T1:AA5"'A'
ファイルはファイル名または で指定されたファイル ID である必要がありますfopen。後者の場合、ファイルはファイルの終わりに達するまで読み取られます。
この"emptyvalue"オプションは、空のフィールドを埋めるために使用する値を指定するために使用できます。デフォルトは 0 です。テキストなどの数値以外の値も に置き換えられることに注意してください"emptyvalue"。
See also: csvread, textscan, dlmwrite.
: csvwrite (filename, x)
: csvwrite (filename, x, dlm_opt1, …)
数値行列x をコンマ区切り値 (CSV) 形式 でファイルfilenameに書き込みます。
この関数は、
dlmwrite (filename, x, ",", dlm_opt1, ...)
オプションの引数はすべて に直接渡されますdlmwrite ( を参照dlmwrite)。
See also: csvread, dlmwrite, dlmread.
: x = csvread (filename)
: x = csvread (filename, dlm_opt1, …)
Read the comma-separated-value (CSV) file filename into the matrix x.
カンマ区切り値 (CSV) ファイルfilename を行列 xに読み込みます。
注意: 数値データを含む CSV ファイルのみを読み取ることができます。
この関数は、
x = dlmread (filename, "," , dlm_opt1, ...)
オプションの引数はすべて に直接渡されますdlmread ( を参照dlmread)。
See also: 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、この関数はさらに 2 つのオプションをサポートしています。
"headerlines":ファイル名の最初の値の行数はスキップされます。
"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.
See also: 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 (…)
テキスト ファイルまたは文字列からデータを読み取ります。
fidに関連付けられた文字列strまたはファイルは、formatに従って読み取られ、解析されます。この関数は、およびの拡張です 。違いとしては、ファイルまたは文字列のいずれからも読み取ることができること、追加のオプション、および追加の書式指定子などがあります。 strreadtextread
入力は、単語、区切り文字 (空白など)、およびリテラルのシーケンスとして解釈されます。区切り文字と空白文字を形成する文字は、オプションによって決定されます。形式は、リテラルの間に散在する書式指定子で構成されます。形式では、空白文字は連続するリテラル間の区切り文字を形成しますが、それ以外は無視されます。
出力Cは、列数が書式指定子の数によって決まるセル配列です。
入力の最初の単語は、フォーマットの最初の指定子と一致し、出力の最初の列に配置されます。2 番目の単語は、2 番目の指定子と一致し、2 番目の列に配置されます。以下同様に続きます。指定子よりも単語の数が多い場合は、すべての単語が処理されるか、繰り返しによって課された制限に達するまで、このプロセスが繰り返されます (以下を参照)。
文字列形式は、 str内の単語を解析する方法を説明します。fscanfと同様に、これらの指定子のいずれでもない形式内のテキスト (空白以外) はリテラルとみなされます。 2 つの形式指定子の間にリテラルがある場合は、入力ストリーム内の一致する単語の間に同じリテラルが出現する必要があります。
有効な指定子は次のとおりです。
%f
%f64
%n
単語は数値として解析され、double に変換されます。
%f32
単語は数値として解析され、単精度浮動小数点数に変換されます。
%d
%d8
%d16
%d32
%d64
単語は数値として解析され、int8、int16、int32、または int64 に変換されます。サイズが指定されていない場合は、int32 が使用されます。
%u
%u8
%u16
%u32
%u64
単語は数値として解析され、uint8、uint16、uint32、または uint64 に変換されます。サイズが指定されていない場合は、uint32 が使用されます。
%s
単語は、空白、行末、またはオプションで指定された区切り文字の前の最後の文字で終わる文字列として解析されます。
%q
単語は「引用符で囲まれた文字列」として解析されます。文字列の最初の文字が二重引用符 (") の場合、文字列には、対応する二重引用符までのすべて (空白、区切り文字、行末文字など) が含まれます。入力に連続する二重引用符のペアが表示された場合、出力では 1 つの二重引用符に置き換えられます。たとえば、入力 "He said ""Hello""" は、値 'He said "Hello"' を返します。
%c
入力の次の文字が読み取られます。これには区切り文字、空白、行末文字が含まれます。
%[…]
%[^…]
最初の形式では、単語は括弧内の文字のみで構成される最長の連続で構成されます。文字の範囲はハイフンで指定できます。たとえば、%[0-9a-zA-Z] はすべての英数字と一致します (基になる文字セットが ASCII の場合)。MATLABはハイフンを文字どおりに扱うため、この拡張は英数字にのみ適用されます。セットに '-' を含めるには、括弧の最初または最後に出現する必要があります。']' を含めるには、最初の文字である必要があります。最初の文字が '^' の場合、単語はリストされていない文字で構成されます。
%N…
%s、%c、%d、%f、%n、%u の場合、オプションの幅を %Ns などで指定できます。ここで、N は 1 より大きい整数です。%c の場合、これにより 1 文字ではなく N 文字が正確に読み取られます。他の指定子の場合、これは読み取られる文字数の上限です。通常の区切り文字を使用すると、読み取られる文字数が少なくなる場合があります。複素数の場合、この制限は実数部と虚数部に個別に適用されます。%f と %n の場合、%N.Mf などの書式指定子が許可されます。ここで、M は考慮される小数点以下の文字数の上限です。後続の桁はスキップされます。たとえば、指定子 %8.2f は 12.345e6 を 1.234e7 として読み取ります。
%*…
変換指定子の残りの部分で指定された単語はスキップされます。
literals
さらに、フォーマットにはリテラル文字列が含まれる場合があります。これらは読み取り時にスキップされます。入力文字列がこのリテラルと一致しない場合、処理は終了します。
最初の指定子に対応する解析された単語は最初の出力引数で返され、残りの指定子についても同様です。
デフォルトでは、入力引数が 1 つしかない場合、formatは です"%f"。つまり、数値は入力から 1 つの列ベクトルに読み込まれます。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
文字列またはファイルの最後まですべてを読み取ります (デフォルト)。
2 つの条件のうち最初の条件が発生するまで読み取ります: 1) フォーマットが N 回処理された、または 2) 入力の N 行が処理された。repeatに許容される値はゼロ (0) です。現在、%q、%c、および %[…]$ 変換内の行末文字は行数に含まれません。これはMATLABと互換性がなく、将来変更される可能性があります。
の動作は、textscanプロパティ/値のペアによって変更できます。次のプロパティが認識されます。
"BufSize"
これは、内部バッファに使用するバイト数を指定します。特に入力に長い文字列が含まれている場合、大きなファイルを読み取るときにこの値を大きな値に設定すると、速度が若干向上することがあります。デフォルトは 4096 ですが、 n が指定されている場合は、 nに応じた値になります。
"CollectOutput"
値が 1 または true の場合、textscan出力セル配列内の同じクラスの連続する列を連結するように指示します。値が 0 または false (デフォルト) の場合、出力は個別の列のままになります。
"CommentStyle"
コメントと見なされ、スキップされる入力部分を指定します。 値はコメントのスタイルで、(1) 文字列または 1x1 セル文字列 (その右側にあるものはすべてスキップ)、(2) 2 つの文字列のセル配列 (最初の文字列と 2 番目の文字列の間にあるものはすべてスキップ) のいずれかになります。コメントは、空白が受け入れられる場所でのみ解析され、区切り文字としては機能しません。
"Delimiter"
値が文字列の場合、値内の任意の文字を使用して入力が単語に分割されます。値が文字列のセル配列の場合、配列内の任意の文字列を使用して入力が単語に分割されます。(デフォルト値 = 任意の空白)
"EmptyValue"
空白で区切られていないデータ内の空の数値に対して返される値。デフォルトは NaN です。データ型が NaN をサポートしていない場合 (たとえば、int32)、デフォルトは 0 です。
"EndOfLine"
値は、空か、行末文字を指定する 1 文字、または "\r\n"(CRLF) のペアのいずれかになります。後者の場合、、またはのいずれか が "\r"(単一の) 改行としてカウントされます。値が指定されていない場合は、 が使用されます。 "\n""\r\n""\r\n"
"HeaderLines"
fidの最初の値行数がスキップされます。これは、コメント以外の最初の行ではなく、任意のタイプの最初の行を参照することに注意してください。
"MultipleDelimsAsOne"
値が 0 以外の場合、間に空白がない連続する区切り文字のシリーズを 1 つの区切り文字として扱います。連続する区切り文字シリーズは垂直に揃える必要はありません。このオプションを指定しないと、行末の前に 1 つの区切り文字があっても、その行は空の値で終了すると見なされませんが、行の先頭に 1 つの区切り文字があると、その行は空の値で始まると見なされます。
"TreatAsEmpty"
値内の文字列の単一の出現(区切り文字または空白で囲まれている)を欠損値として扱います。
"ReturnOnError"
数値 1 または true に設定すると、 を使用して文字列を読み取ろうとするなど、エラーが発生するとすぐに通常どおり戻ります%f。0 または false に設定すると、エラーが返され、データは返されません。
"Whitespace"
値内の文字はすべて空白文字として解釈され、切り取られます。空白文字のデフォルト値は " \b\r\n\t" (スペースに注意) です。空白文字が""(空) に設定され、かつ少なくとも 1 つの"%s"形式変換指定子が指定されていない限り、スペースは常に空白文字の一部となります。
strまたはfid内の単語数がフォーマット変換指定子の数の正確な倍数と一致しない場合、textscanの動作は、文字列またはファイルの最後の文字がオプションで指定された行末であるかどうかによって異なりますEndOfLine。
last character = end-of-line
データ列は、すべての列の長さが同じになるように、空のフィールド、NaN、または0(整数フィールドの場合)で埋められます。
最後の文字が行末ではありません
データ列はパディングされず、textscan長さが等しくない列が返されます。
2 番目の出力位置は、処理が停止した場所を、ファイルまたは文字列の先頭からの文字数で示します。
See also: dlmread, fscanf, load, strread, textread.
The importdata function has the ability to work with a wide variety of data.
: A = importdata (fname)
: A = importdata (fname, delimiter)
: A = importdata (fname, delimiter, header_rows)
: [A, delimiter] = importdata (…)
: [A, delimiter, header_rows] = importdata (…)
ファイルfnameからデータをインポートします。
入力パラメータ:
fname データを含むファイルの名前。
区切り 文字 データの列を区切る文字。\tタブに使用します。(ASCII ファイルのみ有効)
header_rows データが始まる前のヘッダー行の数。(ASCII ファイルのみ有効)
さまざまなファイルタイプがサポートされています:
ASCII テーブル
指定された数のヘッダー行と指定された区切り文字を使用して ASCII テーブルをインポートします。
画像ファイル
MATLABファイル
スプレッドシートファイル(外部ソフトウェアに依存)
WAVファイル
: 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に置き換えます。同様に、オプション入力は、指定された値inmax"inputmax"より大きいすべての要素をinmaxに置き換えます。指定されていない場合は、最小値と最大値はデータ自体から取得されます ( および )。 inmin = min (A(:))inmax = max (A(:))
プログラミングノート: 適用される式は
B = l + ((A - inmin) ./ (inmax - inmin)) .* (u - l)
入力Aが single の場合、出力行列Bのクラスはsingle になりますが、それ以外の場合、double、integer、または論理型の入力の場合は double クラスになります。
See also: bounds, min, max.
Saving Data on Unexpected Exits