<?xml version="1.0" encoding="UTF-8"?>

<!--
 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) 2008 - INRIA
 * ...
 *
 * Copyright (C) 2012 - 2016 - Scilab Enterprises
 *
 * This file is hereby licensed under the terms of the GNU GPL v2.0,
 * pursuant to article 5.3.4 of the CeCILL v.2.1.
 * This file was originally licensed under the terms of the CeCILL v2.1,
 * and continues to be available under such terms.
 * For more information, see the COPYING file which you should have received
 * along with this program.
 *
 -->

<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="fscanfMat">

    <refnamediv>

        <refname>fscanfMat</refname>

        <refpurpose>テキストファイルから行列を読み込む</refpurpose>

    </refnamediv>

    <refsynopsisdiv>

        <title>呼び出し手順</title>

        <synopsis>M = fscanfMat(filename[, fmt]);

            [M, text] = fscanfMat(filename [, fmt]);

        </synopsis>

    </refsynopsisdiv>

    <refsection>

        <title>引数</title>

        <variablelist>

            <varlistentry>

                <term>filename</term>

                <listitem>

                    <para>スキャンするファイルの名前を指定する文字列.</para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>fmt</term>

                <listitem>

                    <para>

                        a character string giving the format. This is an optional

                        parameter, the default value is <literal>"%lg"</literal>.

                    </para>

                    <para>

                        Supported format: <literal>%[width].[precision]type</literal> or <literal>%type</literal> where:

                    </para>

                    <para>

                        <literal>width</literal>: optional number that specifies

                        the minimum number of characters output;

                    </para>

                    <para>

                        <literal>precision</literal>: optional number that

                        specifies the maximum number of characters printed for all

                        or part of the output field, or the minimum number of

                        digits printed for integer values.

                    </para>

                    <para>

                        <literal>type</literal>: lf, lg, d, i, e, f, g (see <link
            linkend="scanf_conversion">scanf_conversion</link>).

                    </para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>M</term>

                <listitem>

                    <para>出力変数. 実数の行列.</para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>text</term>

                <listitem>

                    <para>

                        出力変数. 文字列の列ベクトル.

                        ファイル<varname>filename</varname>の先頭のコメントです.

                    </para>

                </listitem>

            </varlistentry>

        </variablelist>

    </refsection>

    <refsection>

        <title>説明</title>

        <para>

            <function>fscanfMat</function>関数はテキストファイルからスカラー行列を読み込むために

            使用されます.

            <varname>text</varname>が指定された場合,ファイルの先頭の非数値の行が

            返されます.残りの行の列の数は同じである必要があります

            (コロンセパレータは空白文字またはタブ文字であるとみなされます).

            行列の列の数はファイルでみつかった列の数となり,

            行の数は入力ファイルの終端を検出するまでに取得した行数と

            なります.

            この関数は<function>fprintfMat</function>で保存した数値データを

            読み戻すために使用することができます.

        </para>

        <para>

            <function>fscanfMat</function>は,ANSI/ASCII および UTF-8でエンコードされた

            ファイルをサポートします..

        </para>

        <para>

            CSV形式のファイルを読み込む場合,

            <link linkend="csvRead">csvRead</link>関数の使用が推奨されます.

        </para>

    </refsection>

    <refsection>

        <title>例</title>

        <programlisting role="example">

            fd = mopen(TMPDIR + "/Mat", "w");

            mfprintf(fd, "Some text.....\n");

            mfprintf(fd, "Some text again\n");

            a = rand(6,6);

            for i = 1:6 ,

            for j = 1:6, mfprintf(fd, "%5.2f ", a(i,j));end;

            mfprintf(fd, "\n");

            end

            mclose(fd);

            a1 = fscanfMat(TMPDIR + "/Mat")



            A = ones(5,5) + 0.1;

            fprintfMat(TMPDIR + "/Matrix.txt", A, "%lg");

            B = fscanfMat(TMPDIR + "/Matrix.txt", "%lg");

            A == B



            C = [%nan, %inf, -%inf, 1];

            fprintfMat(TMPDIR + "/MatrixNANINF.txt", C);

            D = fscanfMat(TMPDIR + '/MatrixNANINF.txt')



        </programlisting>

    </refsection>

    <refsection role="see also">

        <title>参照</title>

        <simplelist type="inline">

            <member>

                <link linkend="scanf_conversion">scanf_conversion</link>

            </member>

            <member>

                <link linkend="mclose">mclose</link>

            </member>

            <member>

                <link linkend="meof">meof</link>

            </member>

            <member>

                <link linkend="mfprintf">mfprintf</link>

            </member>

            <member>

                <link linkend="fprintfMat">fprintfMat</link>

            </member>

            <member>

                <link linkend="mfscanf">mfscanf</link>

            </member>

            <member>

                <link linkend="mget">mget</link>

            </member>

            <member>

                <link linkend="mgetstr">mgetstr</link>

            </member>

            <member>

                <link linkend="mopen">mopen</link>

            </member>

            <member>

                <link linkend="mprintf">mprintf</link>

            </member>

            <member>

                <link linkend="mput">mput</link>

            </member>

            <member>

                <link linkend="mputstr">mputstr</link>

            </member>

            <member>

                <link linkend="mseek">mseek</link>

            </member>

            <member>

                <link linkend="mtell">mtell</link>

            </member>

            <member>

                <link linkend="mdelete">mdelete</link>

            </member>

            <member>

                <link linkend="csvRead">csvRead</link>

            </member>

        </simplelist>

    </refsection>

</refentry>

