GNU Octave 2.1.x 日本語マニュアル/入力と出力
16.1 基本的な入出力

入出力関数は,明確に2つに分類できます。 1群めは,Matlab で利用できる関数を真似たものです。 2群めは,C言語で使用されている標準I/Oライブラリを真似たものであり,さらなる柔軟性と出力の制御を提供してくれます。
16.1 基本的な入出力

対話的に実行しているとき,Octave は通常,端末の1画面の長さに収まらない出力を,lessやmoreといったページャ (1画面単位で表示するプログラム)に送ります。 これにより,多量の出力が,読む前に流れてしまうという問題を回避します。 less(あるいはmoreの一部のバージョン)を使用すると,前方や後方に移動したり,特定の項目を検索したりできます。
16.1 基本的な入出力

通常,Octave がトップレベルプロンプトの表示を準備する直前,あるいは標準入力から読み込む (たとえばfscanfやscanf関数を使用する)直前まで,ページャによる出力の表示は行われません。 これは,もしあなたが1 個のコマンドステートメントで,かなりの量の作業を実施しようとするならば,何らかの出力がスクリーンに現れる前に, いくらかの遅れが存在することを意味します。 関数fflushは,出力を強制的にページャ(あるいは任意の他のストリーム)へと直ちに送るために使えるでしょう。
16.1 基本的な入出力

変数PAGERに値をセットすることにより,ページャとして実行するためのプログラムを選ぶことができます。 また,変数page_screen_outputの値を0 にセットすることにより,ページごとの表示をやめることができます。
16.1 基本的な入出力

[Command]
16.1 基本的な入出力

[Command]
16.1 基本的な入出力

[Command]
16.1 基本的な入出力

出力のページ区切りをするかどうかを切り替えます。 引数を付けないときは,現在のオンとオフを切り替えます。
16.1 基本的な入出力

[Built-in Variable]
16.1 基本的な入出力

初期値は,ふつうは"less","more"あるいは"pg" です。 これは利用しているシステムにどんなプログラムがインストールされているかに依存します。 付記C [Installation]を参照してください。
16.1 基本的な入出力

対話的に実行しているとき,Octave は,端末の1 画面の長さに収まらない出力を,変数PAGERの値の名前を持つプログラムに送ります。
16.1 基本的な入出力

[Built-in Variable]
16.1 基本的な入出力

もしpage_screen_outputがゼロでないならば,1ページよりも長い全ての出力は,ページャに送られます。 これは,一度に1 画面ずつ眺められるようにするものです。 ページャの中には (lessのような?付記C [Installation]を参照のこと),出力の後方へさかのぼる機能を持つものがあります。 初期値は1 です。
16.1 基本的な入出力

[Built-in Variable]
16.1 基本的な入出力

もし,page_output_immediatelyの値がゼロでないならば,Octaveは,出力が得られるとすぐにページャに送ります。 そうでなければ,Octave はその出力をバッファリングし,その出力をページャに流すため,プロンプトが表示される直前まで待機します。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

出力をfid にフラッシュします。 これは,全ての保留中の出力を,他のイベントが発生する前にスクリーンへと出そうとするときに便利です。 たとえば,inputを呼ぶ前に標準出力ストリームをフラッシュすることは,いつもよい心がけです。 fflushは成功時に0を,エラー時にはOSに依存するエラー値(UNIXでは!1)を返します。
16.1 基本的な入出力

Octave は通常,式が評価されるとすぐにその値を表示するので,すべてのI/O 関数の最も単純なも のは,単なる式であるといえます。 たとえば,以下の式はpiの値を表示するでしょう。
16.1 基本的な入出力

これは,その値とともに変数名(または‘ans’)が表示されるということを受け入れられるのであれば,問題なく動作しています。 変数名を表示させずに,変数の値を表示するためには,関数dispを使用してください。 formatコマンドは,Octave が,dispや通常の表示メカニズムを通して値を表示する方法をいくらか制御する機能を提供します。
16.1 基本的な入出力

[Built-in Variable]
16.1 基本的な入出力

この変数は,最も最近計算した結果で,明示的に変数へ代入していない値を保持します。 たとえば,以下の式を実行した後,
16.1 基本的な入出力

ansの値は25 です。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

x の値を,ストリームfid に表示します。 例を示す。
16.1 基本的な入出力

fdispによる出力は,常に改行で終わることに注意してください。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

x の値を画面に表示します。 例を示す。
16.1 基本的な入出力

dispによる出力は,常に改行で終わることに注意してください。 もし出力値がリクエストされるならば,dispは何も表示せず,フォーマット済み出力を文字列で返します。
16.1 基本的な入出力

[Command]
16.1 基本的な入出力

dispおよびOctave の通常の表示メカニズムによって生み出される出力のフォーマットを制御します。 妥当なオプションは,以下の表に列挙してあります。
16.1 基本的な入出力

Octave は,最大10 文字幅(行列の列間に挟むスペースはカウントしない)の フィールド内に,少なくとも有効桁が5 桁で数字を表示しようとします。 もしOctave が行列の書式設定ができず,その結果,列が小数点で並んでおり, 全ての数値が最大のフィールド幅内に収まっていれば,‘e’フォーマットに切り替えます。
16.1 基本的な入出力

Octave は,最大20 文字幅(行列の列間に挟むスペースはカウントしない)のフィールド内に, 少なくとも有効桁が15 桁で数字を表示しようとします。 ‘short’フォーマットと同様に,もしOctave が行列の書式設定ができず,その結果,列が小数点で並んでおり, 全ての数値が最大のフィールド幅内に収まっていれば,‘e’フォーマットに切り替えます。
16.1 基本的な入出力

short e ‘format long’あるいは‘format short’と同様であるが,常に‘e’ フォーマッ トで出力結果を表示します。 たとえば,‘short e’フォーマットについて,piは 3.14e+00と表示されます。
16.1 基本的な入出力

short E ‘format long e’あるいは‘format short e’と同様であるが,常に大文字の‘E’ フォーマットで出力結果を表示します。 たとえば,‘long E’ フォーマットでは,pi は3.14159265358979E+00と表示されます。
16.1 基本的な入出力

short g 数値の大きさに基づいて,通常の‘long’(あるいは‘short’)と‘long e’(ある いは‘short e’)フォーマットを選択します。 たとえば,‘short g’フォーマットで は,
16.1 基本的な入出力

は以下のように表示されます。
16.1 基本的な入出力

short G ‘format long g’または‘format short g’と同じであるが,大文字の‘E’フォー マットを使用します。 たとえば,‘short G’フォーマットでは,
16.1 基本的な入出力

は以下のように表示されます。
16.1 基本的な入出力

none 行列の列を小数点でそろえようとはせずに,自由なフォーマットで出力します。 これは複素数についても,‘0.60419 + 0.60709i’のような出力ではなく,‘(0.604194,0.607088)’のようなフォーマットになります。
16.1 基本的な入出力

ゼロでない行列の要素を‘+’記号で,ゼロの要素をスペースで表示します。 このフォーマットは,巨大な行列の構造を確かめるときに非常に有効です。
16.1 基本的な入出力

オプション引数chars は,それぞれゼロより大きい,ゼロより小さい,ゼロに等しい値を表示するために使用する3文字のリストです。 たとえば,‘+ "+-."’フォーマットでは,
16.1 基本的な入出力

は以下のように画面に表示されます。
16.1 基本的な入出力

native-hex メモリに格納されている形式どおりに,16 進数を表示します。 たとえば,最下位バイトが最初にくるIEEE の8 バイト実数を利用するワークステーションにおいて,piの値をhexフォーマットで表示すると, 400921fb54442d18となります。 このフォーマットは,数値にのみ有効です。 hex native-hexと同様ですが,常に最上位バイトを最初に表示します。
16.1 基本的な入出力

メモリに格納されている形式どおりに,2進数を表示します。 たとえば,piの値は,以下のようになります。
16.1 基本的な入出力

(ここでは折り返しが発生する関係上,32 ビット区切りで2段表示しています) これは,最下位バイトが最初にくるIEEE の8バイト実数を利用するワークステーションにおいて,表示したときのものです。 このフォーマットは,数値にのみ有効です。
16.1 基本的な入出力

bit native-binと同様ですが,常に最上位バイトを最初に表示します。
16.1 基本的な入出力

compact 列数ラベルの周囲に余計な空白を入れない。
16.1 基本的な入出力

loose 列数ラベルの上下に空白行を挿入する(これは標準設定です)。
16.1 基本的な入出力

標準設定により,Octave は最大10 文字幅のフィールド内に,有効桁が5 桁で数字を表示しようとします。
16.1 基本的な入出力

もしOctave が行列の書式設定ができず,その結果,列が小数点で並んでおり,全ての数値が最大のフィールド幅内に収まっていれば,‘e’フォーマットに切り替えます。
16.1 基本的な入出力

もしformatが引数無しで起動されるならば,標準のフォーマット状態を復元します。
16.1 基本的な入出力

[Built-in Variable]
16.1 基本的な入出力

もしprint_answer_id_nameの値がゼロでなければ,その結果とともに変数名を表示します。 そうでなければ,結果の値のみを表示します。 初期値は1 です。
16.1 基本的な入出力

Octave には,ユーザ入力を促すことを容易にする3 つの関数が存在します。 inputとmenu関数は,通常,ユーザとの対話的設計を管理するために使用され,keyboard関数は,通常,簡単なデバッグを行うために使用されます。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

プロンプトを表示し,ユーザ入力を待ちます。 たとえば,
16.1 基本的な入出力

は,以下のようなプロンプトを表示します。
16.1 基本的な入出力

そして,ユーザが値を入力するのを待ちます。 ユーザによって入力された文字列は式として評価されます。 ゆえに,それがリテラル定数,変数名,あるいは他の妥当な式となり得えます。 現在,inputは,式を評価することによって生み出された値の数にかかわらず,単に1つの値のみを返します。 もし文字列値を得ることだけに興味があるならば,2番めの引数として文字列"s"を付けてinputを呼び出すと良いでしょう。 これは,ユーザによって入力された文字列を,評価せずに返すようにOctave に命令します。 ページャによって表示される出力が待機されることがあるので,input を呼ぶ前に,常にfflush(stdout)を呼ぶことは良い心がけです。 これは,保留中の出力が,あなたの出すプロンプトより前にスクリーンに表示されるようにするものです。
16.1 基本的な入出力

[Function File]
16.1 基本的な入出力

タイトル文字列に続けて一連のオプションを表示します。 各々のオプションは,数値とともに表示します。 戻り値は,ユーザが選択したオプションの数値です。 この関数は,対話的プログラムに役立ちます。 渡すことのできるオプションの数には制限はありませんが,簡単には1画面に収まらないメニューを出すことは混乱の元です。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

この関数は,通常は単なるデバッグのために使用されます。 keyboard関数を実行するとき,Octaveはプロンプトを表示し,ユーザ入力を待機します。 その後,入力文字列が評価され,その結果が表示されます。 これにより,関数内で変数の値を試験すること,および変数に新たな値を代入することが可能になります。 keyboardは,何に値も返しません。 また,ユーザが‘quit’ または‘exit’と打ち込むまで入力の待ち受けを継続します。 keyboardが何も引数を付けずに起動されると,標準のプロンプト‘debug> ’が使用されます。 inputとkeyboardの両方とも,プロンプトにおいて通常のコマンドライン履歴および編集関数が利用できます。 Octave には,ユーザに改行を入力してもらう必要なく,キーボードから1文字を得ることが可能な関数も用意されています。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

キーボードから,単一のキー投下を読み込みます。 1 つの引数を付けて呼び出すと,キー入力を待機しませn。 たとえば,
16.1 基本的な入出力

x には,入力が行われるとすぐに,キーボードから入力した次の文字がセットされます。
16.1 基本的な入出力

これは上の例と同じであるが,キー投下を待たず,何もキーが得られなかったならば空の文字 列を返します。
16.1 基本的な入出力

saveとloadコマンドは,様々なフォーマットでデータをファイルに書き出したり,ファイルから読み込んだりするものです。 save コマンドによって書き出されるファイルの標準フォーマットは,組み込み変数default_save_formatとsave_precisionを使用することでコントロールできます。 Octave は,未だに構造体変数あるいはユーザ定義型を保存(save)したり読み出(load)したりすることはできないことに注意してください。
16.1 基本的な入出力

[Command]
16.1 基本的な入出力

あるファイルfile に,変数v1, v2, . . . を保存します。 特殊なファイル名‘-’ は,端末に出力内容を書き出します。 もし変数名を列記しないならば,Octave は現在のスコープにある全ての変数を書き出します。 saveコマンドで利用できるオプションは,以下の表に列挙してあります。 出力フォーマットを修正するオプションは,組み込み変数default_save_formatによって指定されたフォー マットの設定を上書きします。
16.1 基本的な入出力

Octaveのテキストデータフォーマットで,データを保存します。 警告: このオプションの意味は,Matlab との互換性のため,Octave の将来のバージョンで変更されることがあります。 この変更があっても,現在のコードの意味を保つためには,かわりに-textオプションを使用してください。
16.1 基本的な入出力

Octave のテキストデータフォーマットで,データを保存します。
16.1 基本的な入出力

Octave のバイナリデータフォーマットで,データを保存します。
16.1 基本的な入出力

Octave のバイナリデータフォーマットで,単精度のみを利用してデータを保存します。 保存される全ての値が単精度の表現になることを分かっているときにのみ,このオプションを使用するべきです。
16.1 基本的な入出力

Matlab のバイナリデータフォーマットで,データを保存します。
16.1 基本的な入出力

Matlab version 4 のバイナリデータフォーマットで,データを保存します。
16.1 基本的な入出力

HDF5 フォーマットでデータを保存します。 (HDF5 は,University of Illinois のNational Center for Supercomputing Applications によって開発された,フリーで軽量なバイナリフォーマットである)
16.1 基本的な入出力

Octave の実行形式がHDF5 ライブラリをリンクしていないときには,HDF による保存や読み込みはできません。
16.1 基本的な入出力

HDF5 フォーマットで,単精度のみを利用してデータを保存します。 保存される全ての値が単精度の表現になることを分かっているときにのみ,このオプションを使用するべきです。
16.1 基本的な入出力

組み込み変数も保存するようにします。 初期設定では,Octave は組み込み変数を保存しない。
16.1 基本的な入出力

保存すべき変数のリストは,以下の特殊文字から構成されるワイルドカードパターンを含んで も良いでしょう。
16.1 基本的な入出力

たとえば,‘[a-zA-Z]’なるパターンは,全ての大文字と小文字にマッチします。
16.1 基本的な入出力

Matlab のバイナリデータフォーマットを使用する場合を除き,グローバル変数はグローバル 属性が付いたまま保存されます。 したがって,もし後になって‘load’を使用して読み込むならば, グローバル変数として復元されることになります。
16.1 基本的な入出力

以下のコマンド
16.1 基本的な入出力

は,変数‘a’と‘b’で始まる全ての変数を,Octave のバイナリフォーマットで,ファイル‘data’に保存します。
16.1 基本的な入出力

saveの挙動を変更するための3 つの変数と,Octave が予期せぬ終了を迎えたときに,変数を保存するかどうかをコントロールするための3 つの変数があります。
16.1 基本的な入出力

[Built-in Variable]
16.1 基本的な入出力

もしこの変数にゼロでない値がセットされるならば,Octave がクラッシュしたりハングアップ や終了などの信号を受け取ったときに,現在の全ての変数を"octave-core"というファイルに 保存しようとします。 初期値は1です。
16.1 基本的な入出力

[Built-in Variable]
16.1 基本的な入出力

もしこの変数にゼロでない値がセットされ,crash_dumps_octave_coreもゼロでないなら ば,Octave がハングアップ信号を受け取ったときに,現在のすべての変数を"octave-core"と いうファイルに保存しようとします。 初期値は1です。
16.1 基本的な入出力

[Built-in Variable]
16.1 基本的な入出力

もしこの変数にゼロでない値がセットされていれば,Octave が終了信号を受け取ったときに, 現在のすべての変数を"octave-core"というファイルに保存しようとします。 初期値は1です。
16.1 基本的な入出力

[Built-in Variable]
16.1 基本的な入出力

この変数は,saveコマンドに対する標準フォーマットを指定します。 以下の値のうち,いずれか1つをとるべきです、
16.1 基本的な入出力

標準設定の保存フォーマットは,Octave のテキストフォーマットです。
16.1 基本的な入出力

[Built-in Variable]
16.1 基本的な入出力

この変数は、テキストフォーマットでデータを保存するときの桁数を指定します。デフォルト値は17です。
16.1 基本的な入出力

[Built-in Variable]
16.1 基本的な入出力

この変数は,Octave によって保存されるテキストフォーマットのファイルの行頭において書き 出されるコメント行の書式文字列を指定します。 この書式文字列は,strftimeに渡されます。 また, ‘#’で始まるべきであり,改行文字を含んではいけない。 もしsave_header_format_string が空の文字列ならば,テキストデータファイルから先頭行コメントを省略します。 初期値は,以下の文字列です。
16.1 基本的な入出力

"# Created by Octave VERSION, %a %b %d %H:%M:%S %Y %Z <USER@HOST>"
16.1 基本的な入出力

[Command]
16.1 基本的な入出力

ファイルfile から,指定した変数をロード(読み込み)します。 save と同様に,変数名を列記することができるが,loadはマッチした変数名のみを取り出すことになります。 たとえば,ファイル‘data’に保存した変数を復元するには,以下のコマンドを使用してください。
16.1 基本的な入出力

もしファイルからグローバルのマークが付いた変数が読み出され,同じ名前を持つグローバルシンボルがすでに存在するときには,その変数はグローバルシンボルテーブルにロードされます。
16.1 基本的な入出力

また,もしファイル中で変数にグローバルなマークが付いており,ローカルシンボルが存在しているならば,ローカルシンボルはグローバルテーブルに移動し,ファイルからの値が与えられます。 これら両方のケースは,ある種のエラーの結果であるように見えることから,それらは警告を発します。
16.1 基本的な入出力

1 個の出力引数をつけて起動すると,Octave はシンボルテーブルに変数を挿入するかわりに,データを返します。 もしそのデータファイルが数値のみを含んでいれば(桁をタブまたはスペースで区切ってあれば),それらの値を含む行列を返します。 そうでなければ,loadは,ファイル内の変数名に対応するメンバを持つ構造体を返します。
16.1 基本的な入出力

loadコマンドは,Octave のテキストおよびバイナリ形式,Matlab のバイナリ形式で保存されたデータを読むことができます。 ファイル形式は自動的に認識され,異なる浮動小数点形式 (現在のところ,IEEE ビッグまたはリトルエンディアンのみであり,その他の形式は今後追加されるであろう)からの変換が行われます。
16.1 基本的な入出力

loadで利用できるオプションを以下の表に示す。
16.1 基本的な入出力

‘-force’オプションは,後方互換性を無視して受け入れられます。 現在,Octaveは,その時点でメモリに存在する変数を,ファイル中に存在する同名の変数で上書きします。
16.1 基本的な入出力

そのファイルがOctave のテキストフォーマットであると仮定します。
16.1 基本的な入出力

警告: このオプションの意味は,Matlab との互換性のため,Octave の将来の バージョンで変更されることがあります。 この変更があっても,現在のコードの意味を保つためには,かわりに-textオプションを使用してください。
16.1 基本的な入出力

そのファイルがOctave のバイナリフォーマットであると仮定します。
16.1 基本的な入出力

そのファイルがMatlab version 6 のバイナリフォーマットであると仮定します。
16.1 基本的な入出力

そのファイルがMatlab version 4 のバイナリフォーマットであると仮定します。
16.1 基本的な入出力

そのファイルがHDF5 フォーマットであると仮定します。 (HDF5 は,University of Illinois のNational Center for Supercomputing Applications によって開 発された,フリーで軽量なバイナリフォーマットである)Octave は,他のソフトウエアが作成したHDF5 ファイルを読むことができます。 しかし,サポートしていないデータセットは読み飛ばされます。
16.1 基本的な入出力

Octave の実行形式がHDF5 ライブラリをリンクしていないときには,HDF に よる保存や読み込みはできません。
16.1 基本的な入出力

‘-import’は,後方互換性を無視して受け入れられます。 現在,Octave は多次元HDF データをサポートしており,Octave の識別子として妥当でない変数名につ いて,それを自動的に修正します。
16.1 基本的な入出力

Octave のC スタイル入出力関数は,C 言語の標準入出力ライブラリの機能の大部分を提供します。
16.1 基本的な入出力

しかし,入力関数のいくつかについて,引数リストはわずかに異なっています。 これは,Octave には引数の参照渡しを行う方法がないためです。
16.1 基本的な入出力

これ以降において,file はファイル名を参照し,fidはfopen によって返される整数のファイル番号を指します。
16.1 基本的な入出力

常に利用できる3 つのファイルが存在します。 これらのファイルは,対応するファイル番号を用いてアクセスすることもできますが,以下の表で与えられるシンボル名を常に使用すべきです。 なぜならば,これを使用することにより,プログラムが理解しやすくなるからです。
16.1 基本的な入出力

[Built-in Variable]
16.1 基本的な入出力

標準入力ストリームです(ファイル番号0)。 Octave を対話的に使用しているとき,これはコマンドライン編集関数に渡されています(フィルタ)。
16.1 基本的な入出力

[Built-in Variable]
16.1 基本的な入出力

標準出力ストリームである(ファイル番号1)。 標準出力に書き出されるデータは,通常,ページャに渡されます。
16.1 基本的な入出力

[Built-in Variable]
16.1 基本的な入出力

標準エラーストリームである(ファイル番号2)。 たとえページ区切りをオンにしていても,標準エラーはページに送りません。 エラーメッセージや待ち受けを出すときに有用です。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

fopenの最初の形式では,指定したモード(読み込み限定,読み書き両用など)とアーキテク チャ設定(IEEE ビッグエンディアンやIEEE リトルエンディアンなど)でファイルをオープン
16.1 基本的な入出力

し,そのファイルを後で参照するために用いる整数を返します。 もしエラーが発生したならば,fidは!1 にセットされ,msg には,対応するエラーメッセージが含まれます。 mode は,そのファイルが読み込み,書き出し,あるいはその両方の,どの目的のためにオープンされるかどうかを指定する1 文字か2 文字の文字列です。
16.1 基本的な入出力

fopenの2 番めの形式では,fopen関数は,現時点でオープンしている全てのファイル(stdin,stdoutおよびstderrストリームは除く)に対応するファイルID のベクトルを返します。
16.1 基本的な入出力

fopenの3 番めの形式では,fopen関数は,指定したファイルID をもっていて,現在のとこ ろオープンしているファイル名を返します。
16.1 基本的な入出力

たとえば,
16.1 基本的な入出力

この例は,読み出し専用でファイル‘splat.dat’をオープンしています。 必要であれば,バイナリ形式の数値は,最下位ビットが最初に来るIEEE フォーマットで格納されていると仮定して読み込まれ,そのマシンで利用される形式に変換されます。
16.1 基本的な入出力

すでにオープンされているファイルを開くと,単に再びオープンを行い,別のファイルID を返します。 異なるファイルID を通して同じファイルに書き出すことは,予期しない結果を招くこともあるが,あるファイルを何度もオープンすることはエラーではありません。
16.1 基本的な入出力

‘mode’がとり得る値を示す。
16.1 基本的な入出力

モード文字列に加えて,"t"はテキストモードで,"b"はバイナリモードでオープンします。 WindowsおよびMacintosh システムでは,テキストモードは改行(LF;linefeed)を,システムにとって適切な行終端文字(Windows では復帰改行CR-LF,Macintosh では復帰CR)へと変換します。 モードを指定しないときには,バイナリモードになります。
16.1 基本的な入出力

引数arch は,そのファイルについての標準データフォーマットを指定します。 arch に指定できる値を以下に示す。
16.1 基本的な入出力

しかしながら,現在のところ,この変換は‘native’,‘ieee-be’ および‘ieee-le’についてのみサポートしています。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

指定したファイルをクローズします。 成功すると,fcloseは0 を返し,そうでなければ!1 を返します。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

ある文字列を,フォーマット無しでファイルに書き出します。
16.1 基本的な入出力

成功すると正の数を,エラーの場合はEOF を返します。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

ある文字列を,フォーマット無しで標準出力に書き出します。
16.1 基本的な入出力

成功すると正の数を,エラーの場合はEOF を返します。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

ファイルから,文字を読み込む。 改行まで,あるいはEOF まで,またはlen 文字読み込んだ後に停止します。 読み込んだ文字を,末尾の改行を除いた上で,文字列として返します。 len を省略すると,fgetlは次の改行までの文字を読み込む。 もし読み込むべき文字がこれ以上ないならば,fgetlは!1 を返します。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

ファイルから,文字を読み込む。 改行まで,あるいはEOF まで,またはlen 文字読み込んだ後に停止します。 読み込んだ文字を,末尾の改行を付けたまま,文字列として返します。 len を省略すると,fgetlは次の改行までの文字を読み込みます。 もし読み込むべき文字がこれ以上ないならば,fgetlは!1 を返します。
16.1 基本的な入出力

この節は,printfや関連する関数の呼び出し方について説明しています。 以下の関数は,フォーマット付き出力のために利用可能です。 これらは,同名のC 言語関数を真似たものですが,それらの関数はベクトルや行列の値を表示するパフォーマンスを向上するために,異なるフォーマットテンプレートを解釈します。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

テンプレート文字列template に従って,オプション引数をstdoutに表示します。 表示した文字数を返します。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

この関数は,出力がstdoutの代わりにストリームfid に書き出すことを除き,printfと同様 です。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

この関数は,出力が文字列として返されることを除き,printfと同様です。 引数として適切なサイズの文字列を提供する必要があったC ライブラリ関数とは異なり,Octave のsprintf関数は,変換したすべての項目が保持するため,自動的にサイズを変更した文字列を返します。 printf関数は,任意の引数の数を表示するために使用することができます。 関数の呼び出しのときに与えたテンプレート文字列の引数は,追加的な引数の数についてだけでなく,その型およびそれらの出力のために使用されるべきスタイルについての情報も提供します。 テンプレート文字列内の通常の文字は,単にそのまま出力ストリームに書き出されます。 一方,テンプレート内に‘%’文字で始まる変換指定(conversion specifications)は,それに続く引数をフォーマットし,出力ストリームに書き出すようにします。 たとえば,
16.1 基本的な入出力

このコードは,以下のように出力します。
16.1 基本的な入出力

この例は,スカラの引数を10 進数で表示するように指定する‘%d’変換子,文字列の引数を表示す るように指定する‘%s’変換子,および文字‘%’そのものを表示するための‘%%’変換子の利用を示したものです。 整数の引数を符号無し8 進数,10 進数あるいは16 進数として表示するための変換子もあります(それぞれ‘%o’,‘%u’あるいは‘%x’)。
16.1 基本的な入出力

文字の値(‘%c’)も表示できます。
16.1 基本的な入出力

浮動小数点数値は,通常,‘%f’変換子を使用して固定小数点表記したり,‘%e’変換子を使用して指数表記で表示することができます。 ‘%g’ 変換子は,ある数値の大きさに対してより適切な表記によって,‘%e’と‘%f’フォーマットを使い分けます。 ‘%’と適用する変換を表す文字の間に修正子を書くことにより,より詳細なフォーマットをコントロールすることができます。 これは,変換の通常の挙動をわずかに変更します。 たとえば,大部分の変換指定は,最小のフィールド幅やフィールド内の左寄せや右寄せにするかどうかを合図できるようにします。
16.1 基本的な入出力

特定のフラグや許容される修正子とその解釈は,特定の変換に依存します。 それらは以降の節において,より詳細に解説されています。
16.1 基本的な入出力

行列の値が与えられたとき,Octave のフォーマット付き出力関数は,その行列の全ての値が出力されるまで,書式テンプレートを繰り返し適用します。 たとえば,以下のようになります。
16.1 基本的な入出力

もし複数の値が,一度の呼び出しで表示されるならば,1 つの値から次の値まで移動するときには,出力関数は書式テンプレートの最初には戻りません。 このことは,行列内の要素数が,書式フォーマットにおいて変換する数のちょうど倍数になっていないときには,よく分からない出力になることがあります。 以下の例を参照してください。
16.1 基本的な入出力

もしこれを望まないならば,1 回の呼び出しで出力しようとせずに,何度も呼び出しを繰り返してください。
16.1 基本的な入出力

このセクションでは,printfのテンプレート文字列に現れるであろう変換指定子の細かな記述方法についての詳細を述べています。 テンプレート文字列内にあって,変換指定子ではない文字は,そのままストリームに表示されます。 printfのテンプレート文字列における変換指定子は,以下のような一般的な形式をとります。
16.1 基本的な入出力

たとえば,変換指定子‘%-10.8ld’について,‘-’はフラグであり,‘10’はフィールド幅を指定し,精度は‘8’であり,‘l’という文字は型修飾子であって,‘d’は変換のスタイルである(この例について言えば,数値の引数を,10 進数表記,最低10 文字幅となるフィールドに8 桁以内の左寄せで表示せよということです)。
16.1 基本的な入出力

より詳細に言えば,出力変換方法の指定は,最初に‘%’で開始し,以下の順で並べた文字で構成されます。
16.1 基本的な入出力

2 ゼロ,あるいは変換指定子の通常の挙動を修飾するフラグ文字; 2 最小フィールド幅を指定する10 進の整数(オプション); もし通常の変換によってこの幅よりも少ない文字数となれば,そのフィールドは指定した幅になるようにスペースを詰める。 これは最小の値です。 すなわち,もし通常の変換によってこの幅よりも多い文字数となれば,そのフィールドは丸められません。 通常,その出力はフィールド内で右寄せとなります。
16.1 基本的な入出力

フィールド幅を‘*’と指定することもできます。 これは,引数リストの次の引数が,(表示すべき実際の値ではなく)フィールド幅として使用します。 その値は最も近い整数に丸められます。 もしこの値が負ならば,これは‘-’フラグ(以下を参照)を指定し,フィールド幅としてその絶対値を使用することを意味します。
16.1 基本的な入出力

2 数値の変換に対して,書き出す桁数を指定するための精度(オプション);もし精度を指定するならば,10 進整数をピリオド(‘.’)の後ろに置く(省略するとゼロとみなす)。
16.1 基本的な入出力

精度には‘*’を指定することもできます。 これは,引数リストの次の引数が,(表示すべき実際の値ではなく)精度として使用します。 この値は整数でなければならず,負であれば無視されます。
16.1 基本的な入出力

2 型修飾文字列(オプション);この文字は,Octave のprintf関数では無視されるが,C 言語のprintfとの互換性のために提供されていると考えておくとよいでしょう。 2 適用する変換を指定する文字;
16.1 基本的な入出力

許容される正確なオプションと,それがどのように解釈されるのかは,異なる変換指定子のあいだで変化します。 使用する特定のオプションについての情報は,個々の変換に関する解説を参照してください。
16.1 基本的な入出力

全てのさまざまな変換が行うことをまとめた表を示します。
16.1 基本的な入出力

‘%d’, ‘%i’ 整数を符号付き10 進数として表示します。 詳細はSection 16.2.8 [Integer Conversions]を参照してください。 ‘%d’と‘%i’は,出力に対して同じ意味ですが,入力に対するscanfで使用するときには異なる意味になります(Section 16.2.13 [Tableof Input Conversions]を参照してください)。
16.1 基本的な入出力

‘%o’ 整数を符号なし8 進数として表示します。 詳細はSection 16.2.8 [Integer Conversions]を参照してください。
16.1 基本的な入出力

‘%u’ 整数を符号なし10 進数として表示します。 詳細はSection 16.2.8 [Integer Conversions]を参照してください。
16.1 基本的な入出力

‘%x’, ‘%X’ 整数を符号なし16 進数として表示します。 ‘%x’は小文字を,‘%X’は大文字を使用します。 詳細はSection 16.2.8 [Integer Conversions]を参照してください。
16.1 基本的な入出力

‘%f’ 浮動小数点数を通常の(固定小数点)表記で表示します。 詳細はSection 16.2.9[Floating-Point Conversions]を参照してください。
16.1 基本的な入出力

‘%e’, ‘%E’ 浮動小数点数を指数表記で表示します。 ‘%e’は小文字を,‘%E’は大文字を使用します。 詳細はSection 16.2.9 [Floating-Point Conversions]を参照してください。
16.1 基本的な入出力

‘%g’, ‘%G’ 浮動小数点数を通常の(固定小数点)表記または指数表記のどちらかで表示します。 数値の大きさに対してより適切な方法で表示します。 ‘%g’は小文字を,‘%G’は大文字を使用します。 詳細はSection 16.2.9 [Floating-Point Conversions]を参照してください。
16.1 基本的な入出力

‘%c’ 1 文字を表示します。 Section 16.2.10 [Other Output Conversions]を参照してください。
16.1 基本的な入出力

‘%s’ 文字列を表示します。 Section 16.2.10 [Other Output Conversions]を参照してください。
16.1 基本的な入出力

‘%%’ ‘%’という文字そのものを表示します。 Section 16.2.10 [Other Output Conversions]を参照してください。
16.1 基本的な入出力

もし変換識別子の記述方法が妥当なものでなければ,予測できないことが起こり,表示が行われないでしょう。 もしテンプレート文字列内の全ての変換指定子について値を与えるために提供する引数が充分でなければ,あるいはその引数が正しい型でなければ,結果は予測不能です。 もし変換指定子よりも多くの引数を与えるならば,余分な引数値は単に無視されます; これは,ときに有用です。
16.1 基本的な入出力

この節では,‘%d’,‘%i’,‘%o’,‘%u’,‘%x’および‘%X’変換指定子のオプションについて解説します。
16.1 基本的な入出力

これらの変換では,さまざまなフォーマットで整数を表示します。
16.1 基本的な入出力

‘%d’と‘%i’変換指定子は,数値引数を符号付き10 進数として表示します;一方で,‘%o’,‘%u’および‘%x’は数値引数を,それぞれ符号なし8 進数,10 進数,16 進数として表示します。 ‘%X’変換指定子は,‘%x’と同じですが,桁として‘abcdef’のかわりに‘ABCDEF’という文字を使用することが異なっています。
16.1 基本的な入出力

以降のフラグが意味を持ちます。
16.1 基本的な入出力

‘-’ そのフィールドで左寄せにします(通常の右寄せに代えて)。
16.1 基本的な入出力

‘+’ 符号付きの‘%d’および‘%i’変換指定子について,その値が正であればプラス記号を表示 します。
16.1 基本的な入出力

‘ ’ 符号付きの‘%d’および‘%i’変換指定子について,その結果がプラスまたはマイナス記号 で開始しなければ,かわりに空白文字を先頭に付けます。 ‘+’フラグは結果に記号が含ま れるようにしますが,そのフラグとこれを両方とも与えるならば,このフラグは無視されます。
16.1 基本的な入出力

‘#’ ‘%o’変換子について,このフラグは,あたかも精度が増えたかのように,先頭の桁が‘0’になるようにします。 ‘%x’または‘%X’について,このフラグは,結果の先頭にそれぞれ‘0x’または‘0X’を付加します。 これは,‘%d’,‘%i’あるいは‘%u’変換指定子については何も有効ではありません。
16.1 基本的な入出力

‘0’ スペースの代わりに,フィールドをゼロで埋めます。 符号あるいはベースを認識した後にゼロを配置します。 ‘-’フラグも指定されているか,精度が指定されていれば,このフラグは無視されます。
16.1 基本的な入出力

もし精度が与えられていれば,これは表示する最小桁数を指定します。 もし必要であれば,先頭にゼロが含まれます。 もし精度を指定しないならば,その数値は,必要になるできるだけ多くの桁数で表示します。 もし精度ゼロで0 という値を変換すると,何も文字が表示されません。
16.1 基本的な入出力

この節では,浮動小数点数に対する変換指定子,すなわち‘%f’,‘%e’,‘%E’,‘%g’および‘%G’ について論じます。
16.1 基本的な入出力

‘%f’変換子は,その引数を,[-]ddd.ddd なる形式の固定小数点表記で表示します。 ここで小数点以下の桁数は,指定した精度によってコントロールされます。
16.1 基本的な入出力

‘%e’変換子は,その引数を,[-]d.ddde[+|-]dd なる形式の指数表記で表記します。 また,小数点以下の桁数は,指定した精度によってコントロールされます。 指数は,常に少なくも2 桁が含まれます。 ‘%E’ 変換子も同様ですが,指数を‘e’の代わりに‘E’で表すことが異なります。
16.1 基本的な入出力

‘%g’および‘%G’変換子は,指数部分が-4 以下もしくは精度以上であるときには,それぞれ‘%e’または‘%E’の形式で表示します。 そうでなければ,‘%f’形式を使用します。 末尾のゼロは結果の分数部 分から取り除かれ,後ろに桁が続くときにのみ小数点が表示されます。
16.1 基本的な入出力

以下のフラグは,その挙動を修飾するために使用できます。
16.1 基本的な入出力

‘-’ そのフィールドで左寄せにします。 通常,結果は右寄せになります。
16.1 基本的な入出力

‘+’ 結果に,常にプラスまたはマイナスの符号を含めます。
16.1 基本的な入出力

‘ ’ もしその結果がプラスまたはマイナスの符号で開始しなければ,かわりに先頭にスペースを付加します。 ‘+’フラグは,その結果に符号を含むようにするので,このフラグと両方を当てると,このフラグは無視されます。
16.1 基本的な入出力

‘#’ たとえ小数点以下に桁が無くとも,結果が常に小数点を含むように指定します。 ‘%g’および‘%G’変換子について,このフラグは,小数点以降に続くゼロが,取り除かれずにそのままにします。
16.1 基本的な入出力

‘0’ スペースの代わりに,フィールドをゼロで埋めます。 符号あるいはベースを認識した後にゼロを配置します。 ‘-’フラグも指定されているか,精度が指定されていれば,このフラグは無視されます。
16.1 基本的な入出力

精度指定子は‘%f’,‘%e’および‘%E’変換子に対して,小数点以下に何桁続くかを指定します。 これらの変換子について,初期設定の精度は6です。 もしその精度が明示的に0であれば,小数点文字を表示しません。 ‘%g’および‘%G’変換子について,その精度は,表示すべき有効桁が何桁かを指定します。 有効桁は小数点以前の最初の桁と,小数点以下の全ての桁です。 ‘%g’および‘%G’に対して,精度が0または未指定ならば,1という値のように扱われます。 もし表示される値が指定した桁数では詳細に表現できないならば,その値は適合する最も近い数に丸められます。
16.1 基本的な入出力

この節では,printfに対するその他の変換子について解説します。
16.1 基本的な入出力

‘%c’変換子は1 文字を表示します。 ‘-’フラグは,そのフィールドで左寄せを指定するために使用できますが,他のフラグは何も指定されず,精度あるいは型修飾子は何も与えることはできません。 たとえば,
16.1 基本的な入出力

これは‘hello’と表示します。
16.1 基本的な入出力

‘%s’変換子は文字列を表示します。 対応する引数は,文字列でなければなりません。 精度は,書き出す最大の文字数を指示するために指定することができます。 一方,文字列内のnull で終わるまでの文字(null は含まない)は,出力ストリームに書き出されます。 ‘-’フラグは,そのフィールドで左寄せを指定するために使用できますが,他のフラグは何も指定されず,精度あるいは型修飾子は何も与えることはできません。 たとえば,
16.1 基本的な入出力

は,‘ nowhere ’(先頭と末尾にスペースを含みます)と表示します。
16.1 基本的な入出力

Octave は,フォーマット付き入力を読み込むために,scanf,fscanfおよびsscanf関数を提供しています。 これらの関数の各々には,2 つの使い方が存在します。 1 つめは,ファイルからデータのベクトルを展開するため,もうひとつは,より「C ライク」なものです。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

1 番めの形式において,template にならってfid から読み込み,行列val として結果を返します。
16.1 基本的な入出力

オプション引数size は,読み込むべきデータの総量を指定します。 これは,以下のうちどれか1つをとります。
16.1 基本的な入出力

Inf 可能な限り読み込み,列ベクトルを返します。
16.1 基本的な入出力

nr nr 個めの要素まで読み込み,列ベクトルを返します。
16.1 基本的な入出力

[nr, Inf] 可能な限り読み込み,nr 行の行列を返します。 もし読み込んだ要素数がきちんとnrの倍数になっていないならば,最後の列はゼロで埋められます。
16.1 基本的な入出力

[nr, nc] nr * nc個の要素まで読み込み,nr 行の行列を返します。 もし読み込んだ要素数がきちんとnr の倍数になっていないならば,最後の列はゼロで埋められます。
16.1 基本的な入出力

size を省略すると,Infという値を仮定します。
16.1 基本的な入出力

もしtemplate に文字変換のみを指定すると,文字列を返します。
16.1 基本的な入出力

正常に読み込めた項目の数は,count に返ります。
16.1 基本的な入出力

2 番めの形式において,単一スカラの戻り値に対応するtemplate の各変換識別子として,template にならってfid から読み込む。この形式は,より「C 言語寄り」であり,Octave の以前のバージョンと互換性があります。 変換に成功した数は,count に返されます。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

これはfscanfのような関数であるが,文字をストリームの代わりに文字列string から得るこ とが異なっています。 その文字列の終端に達することは,ファイルの末端(end-of-file)の状態であるとして扱われます。
16.1 基本的な入出力

scanfを呼び出すことは,任意の引数がテンプレート文字列のコントロール下で読み込まれるということについて,表面的にはprintfを呼ぶことと等価です。 テンプレート文字列内の変換識別子の表記法がprintfのそれと非常に似ている一方で,テンプレートの解釈は,固定フィールドではなく,フォーマットなし入力で単にパターンマッチング向きです。 たとえば,大部分のscanf変換では,入力ファイル内の任意の数の「ホワイトスペース」(空白文字,タブおよび改行)を読み飛ばし,さらに,数値入力については,出力変換に存在するような精度の概念がありません。 通常は,テンプレート内のホワイトスペース以外の文字は,入力ストリーム内の文字に正確に一致すると期待されます。
16.1 基本的な入出力

マッチングの失敗が発生するとき,scanfは直ちに終了し,マッチしなかった最初の文字をそのス トリームから読み込むべき次の文字として残します。 そしてscanfはうまく変換した全ての項目を返します。
16.1 基本的な入出力

フォーマット付き入力関数は,フォーマット付き出力関数と同じ頻度で使用されることはありません。 理由の一部としては,それら関数を適切に使うには注意を要するからです。 別の理由は,マッチエラーから復帰することが難しいことです。
16.1 基本的な入出力

scanfのテンプレート文字列は,‘%’で始まる変換識別子を交えた通常の文字列を含みます。
16.1 基本的な入出力

テンプレートにある任意のホワイトスペース文字は,入力ストリームにおける任意の数のホワイト スペースを読み込んで捨ています。 マッチするホワイトスペース文字は,テンプレート文字列に登場するホワイトスペースと厳密に同じである必要はありません。 たとえば,前後にホワイトスペースを伴うカンマを認識させるには,テンプレートに‘ , ’を書いてください。
16.1 基本的な入出力

テンプレート文字列内の,変換識別子の一部ではない他の文字は,入力ストリームにおける文字列に厳密に一致しなければならない。 もしこのケースに合わなければ,マッチングの失敗が発生します。
16.1 基本的な入出力

scanfのテンプレート文字列内の変換指定子は,以下のような一般的な形式になります。
16.1 基本的な入出力

より詳細に言えば,入力変換方法の指定は,最初に‘%’で開始し,以下の順で並べた文字で構成されます。
16.1 基本的な入出力

2 フラグ文字‘*’(オプション); これは,この識別子によって読み込んだテキストを無視するということです。 scanfがこのフラグを用いた識別子を見つけたときには,変換識別子の残りによって指示されたように入力から読み込むが,この入力は捨てて何の値も返さない。 また,うまく代入できた階数のカウントをインクリメントされません。
16.1 基本的な入出力

2 最大フィールド幅を指定する10 進の整数(オプション);この最大数に達したとき,あるいはマッチしない文字が見つかったときには,入力ストリームからの読み込みを停止します。 大部分の変換子は,最初のホワイトスペース文字を捨てられ,これら読み捨てた文字は最大フィールド幅に向けてカウントとされません。 最初のホワイトスペースを読み捨てない変換は,きちんと説明します。
16.1 基本的な入出力

2 型修飾文字(オプション); この文字は,Octave のscanf関数では無視されるが,C言語のscanfとの互換性のために提供されていると考えておくとよい。
16.1 基本的な入出力

2 適用する変換を指定する文字; 許容される正確なオプションと,それがどのように解釈されるのかは,異なる変換指定子のあいだで変化します。 使用する特定のオプションについての情報は,個々の変換に関する解説を参照してください。
16.1 基本的な入出力

各種変換指定子をまとめた表を示します。
16.1 基本的な入出力

‘%d’ 10 進数で書かれた符号付き(あるいは符号なし)整数にマッチします。 Section 16.2.14[Numeric Input Conversions]を参照してください。
16.1 基本的な入出力

‘%i’ C 言語で整数の定数を指定するための任意のフォーマットによる符号付き(あるいは符号なし)整数にマッチします。 Section 16.2.14 [Numeric Input Conversions]を参照してください。
16.1 基本的な入出力

‘%o’ 8 進数表記で書かれた符号付き(あるいは符号なし)整数にマッチします。 Section 16.2.14[Numeric Input Conversions]を参照してください。
16.1 基本的な入出力

‘%u’ 10 進数で書かれた符号なし整数にマッチします。 Section 16.2.14 [Numeric Input Conversions]を参照してください。
16.1 基本的な入出力

‘%x’, ‘%X’ 16 進数で書かれた符号なし整数にマッチします。 Section 16.2.14 [Numeric Input Conversions]を参照してください。
16.1 基本的な入出力

‘%e’, ‘%f’, ‘%g’, ‘%E’, ‘%G’ 符号付き(あるいは符号なし)浮動小数点数にマッチします。 Section 16.2.14 [Numeric Input Conversions]を参照してください。
16.1 基本的な入出力

‘%s’ ホワイトスペース以外の文字のみを含む文字列にマッチします。 Section 16.2.15 [String Input Conversions]を参照してください。
16.1 基本的な入出力

‘%c’ 1 文字以上の文字列にマッチします。 読み込んだ文字数は,変換子に与えられた最大フィールド幅によってコントロールされます。 Section 16.2.15 [String Input Conversions]を参照してください。
16.1 基本的な入出力

‘%%’ これは,入力ストリーム内で‘%’文字そのものにマッチします。 対応する引数はありません。
16.1 基本的な入出力

もし変換指定子の記述が妥当なものでなければ,その挙動は定義されません。 代入を実行するテンプレート文字列における全ての変換指定子についてアドレスを提供するために与えられる十分な関数がない,あるいはその引数が正しい型でないならば,その挙動も定義されません。 一方で,余分な引数は単に無視されます。
16.1 基本的な入出力

この節は数値を読み込むためのscanf変換子について説明します。
16.1 基本的な入出力

‘%d’変換子は,10 進の符号付き(あるいは符号なし)整数にマッチします。
16.1 基本的な入出力

C 言語で整数の定数を指定するための任意のフォーマットによる符号付き(あるいは符号なし)整数にマッチします。
16.1 基本的な入出力

たとえば,‘%i’変換子のもとでは,‘10’,‘0xa’あるいは‘012’のどの文字列も整数として読み込むことができます。 これら各々は10 進数10という数値を指定します。
16.1 基本的な入出力

‘%o’,‘%u’および‘%x’は,それぞれ8 進数,10 進数および16 進数の符号なし整数にマッチします。
16.1 基本的な入出力

‘%X’変換子は‘%x’と同一です。 それらは桁として大文字と小文字のどちらも許容します。
16.1 基本的な入出力

C 言語のscanfとは異なり,Octave は‘h’,‘l’および‘L’ 修飾子を無視します。
16.1 基本的な入出力

この節では,文字列と文字を読み込むためのscanf入力変換子(‘%s’ と‘%c’)について説明しています。
16.1 基本的な入出力

‘%c’変換子は最もシンプルです。 これは常に固定文字数にマッチします。 最大フィールドは,何文字読み込むかを伝えます。 もし最大値を指定しなければ,初期値は1 です。 この変換子は,最初にあるホワイトスペース文字を読み飛ばしません。 この変換子は,精密に次のn 文字を読み込み,読み込めないならば失敗します。
16.1 基本的な入出力

‘%c’変換子は,ホワイトスペース以外の文字列にマッチします。 これは最初にあるホワイトスペース文字を読み飛ばしますが,読み込んだ文字列の後ろでホワイトスペースに遭遇すると停止します。
16.1 基本的な入出力

たとえば,以下の入力を読み込みます。
16.1 基本的な入出力

これを‘%10c’で変換すると," hello, wo"という文字列になりますが,同じ入力を‘%10s’変換子は"hello,"を生み出します。
16.1 基本的な入出力

Octave はfreadとfwrite関数を使用することにより,バイナリデータを読み書きすることができ ます。 これは同名の標準C 言語を真似たものです。 この関数は,整数データのバイト順を自動的に入れ替えることができ,データが読み込まれたときにサポートする浮動小数点フォーマット間で変換することができます。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

指定したファイルIDfid から,型precision のバイナリデータを読み込む。
16.1 基本的な入出力

オプション引数size は,読み込むべきデータの総量を指定します。 これは,以下のうちの1 つをとります。
16.1 基本的な入出力

Inf 可能な限り読み込み,列ベクトルを返します。
16.1 基本的な入出力

nr nr 個めの要素まで読み込み,列ベクトルを返します。
16.1 基本的な入出力

[nr, Inf] 可能な限り読み込み,nr 行の行列を返します。 もし読み込んだ要素数がきちんとnrの倍数になっていないならば,最後の列はゼロで埋められます。
16.1 基本的な入出力

[nr, nc] nr * nc個の要素まで読み込み,nr 行の行列を返します。 もし読み込んだ要素数がきちんとnr の倍数になっていないならば,最後の列はゼロで埋められます。
16.1 基本的な入出力

size を省略すると,Infという値を仮定します。
16.1 基本的な入出力

追加の引数precision は,読み込むべきデータの型を指定する文字列であり,以下のうちの1つをとります。
16.1 基本的な入出力

引数precision は,任意の反復カウントを指定することもできます。 たとえば,‘32*single’は32 個の単精度浮動小数点数のブロックを読み込むことになります。 ブロックによる読み込みは,引数skip と組み合わせると有用です。
16.1 基本的な入出力

引数precision は,型変換も指定することができます。 たとえば,‘int16=>int32’は16 ビット整数値を読み込んで32 ビット整数の配列を返します。 標準設定により,freadは倍精度配列を返します。 特別な表記‘*TYPE’は‘TYPE=>TYPE’を短縮したものです。
16.1 基本的な入出力

変換と反復回数は組み合わせることができます。 たとえば,‘32*single=>single’は単精度浮動小数点値のブロックを読み込み,標準の倍精度値配列のかわりに単精度値を返すようになります。
16.1 基本的な入出力

追加の引数skip は,各々の要素(あるいは要素のブロック)を読み込んだ後,読み飛ばすべきバイト数を指定します。 もしこれを指定しないならば,0 が指定されたものと仮定します。 もし読み込んだ最後のブロックが完了しないならば,最初のスキップは省略されます。 たとえば,
16.1 基本的な入出力

この式は,最後の8 バイトのスキップを省略します。 なぜならば,最後の読み込みが,3 値の完全なブロックにはならないからです。
16.1 基本的な入出力

オプション引数arch は,そのファイルについてのデータフォーマットを指定する文字列である。 以下の値が利用できます。
16.1 基本的な入出力

現在のところ,この変換は‘native’,‘ieee-be’および‘ieee-le’ についてのみサポートしています。
16.1 基本的な入出力

そのファイルから読み込んだデータは,val に返されます。 また,読み込んだ値の数はcountに返されます。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

型precision のバイナリデータを,指定したファイルIDfid に書き出し,正常にファイルへ書き込んだ値の数を返します。
16.1 基本的な入出力

引数data は,ファイルに書き込まれることになる値の行列です。 この値は,行方向に要素が連続しているように展開される(Fortran の配列順)。
16.1 基本的な入出力

残りの引数precision,skip およびarch は,オプションであり,freadの解説にあるように解釈されます。
16.1 基本的な入出力

もしdata の値が大きすぎて指定した精度に当てはまらないならば,fwriteの挙動は定義されません。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

template から生成される一意な名前を持つ,新規テンポラリファイルに対応するファイルID を返します。 template の最後の6 文字はXXXXXXでなければならず,それらは一意なファイル名を作るための文字列に置き換えられます。 そのファイルは,読み書き両用モードで,システムに依存したパーミッション(GNU/Linux システムでは,glibc 2.0.7 以降に対して0600 となる)で生成されます。 このファイルは,O_EXCLフラグ付きでオープンされます。
16.1 基本的な入出力

もしオプション引数delete が与えられ,これが真ならば,そのファイルはOctave の終了時,またはpurge_tmp_files関数が呼ばれたときに自動的に削除されます。
16.1 基本的な入出力

この関数が成功すると,fid は妥当なファイルID,name はファイル名,およびmsg は空文字列となります。 そうでなければ,fid は!1,name は空に,そしてmsg はシステム依存のエラーメッセージとなります。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

一意な名前を持つ新規テンポラリファイルに対応するファイルID を返します。 このファイルはバイナリの読み書き両用モード("w+b")でオープンされます。 このファイルは,クローズされるかOctave が終了するときに自動的に削除されます。
16.1 基本的な入出力

この関数が成功すると,fid は妥当なファイルID,msg は空文字列となります。 そうでなければ,fid は!1,msg はシステム依存のエラーメッセージとなります。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

一意なテンポラリファイル名を文字列として返します。
16.1 基本的な入出力

prefix を省略すると,"oct-"という値が使用されます。 dir も省略すると,テンポラリファイルを作成するための標準的なディレクトリが使用されます。 もしdir を与えるならば,それが存在していなければなりません。 存在していなければ,標準的なディレクトリが使用されます。 tmpnamによって名付けられたファイルはオープンされていないので,自分でオープンしようとするときには,すでに利用可能では無くなっているという可能性がある(それほど起こりえないことでしょうが)。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

与えられたファイルが,すでに読み終わった状態(end-of-file)にあれば1 を,そうでなければ0 を返します。 これは,そのファイルがすでにファイル末尾まで読み終わっているときに1 を返すものであり,次の操作によってその状態になるだろうということではないことに注意してください。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

与えられたファイルについてエラー状態にあれば1 を,そうでなければ0 を返します。 これはエラーがすでに起こったときにのみ1 を返すことになり,次の操作がエラー状態に陥るだろうということではないことに注意してください。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

オープンされているファイル名,読み込み専用,書き出し専用,あるいは読み書き両用かどうかのリストを表示します。 例を示す。
16.1 基本的な入出力

与えられたファイルに対するファイルポインタのポジションをセットし,決定するために3つの関数が利用できます。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

ファイルポインタの位置を,ファイルfid の先頭からの文字数として返します。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

ファイルポインタを,ファイルfid 内の任意の位置へセットします。 そのポインタは,origin からoffset 文字めに配置します。 origin は,あらかじめ定義された変数SEEK_CUR(現在の位置),SEEK_SET (ファイルの先頭),SEEK_END(ファイルの末端),あるいは文字列"cof","bof","eof"のいずれか1 つを使うのがよい。 オフセットはゼロでなければならず,そうでなければftellによって返される値とする(その場合,origin はSEEK_SETでなければならない)。 成功すると0,エラーの場合は!1 を返します。
16.1 基本的な入出力

[Built-in Variable]
16.1 基本的な入出力

[Built-in Variable]
16.1 基本的な入出力

[Built-in Variable]
16.1 基本的な入出力

これらの変数は,関数fseekの3番めの引数として使用されることになります。
16.1 基本的な入出力

[Built-in Function]
16.1 基本的な入出力

ファイルfid のファイルポインタを,先頭に移動します。 成功すると0 を,エラーが発生すると!1 を返します。 これはfseek (fid, 0, SEEK_SET)と等価です。 以下の例は,現在のファイルポジションを変数markerに格納し,ファイルの先頭にポインタを移動させ,4文字読み込み,もとのポジションを返します。