<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2008 - INRIA - Farid BELAHCENE
+ * Copyright (C) 2013, 2016 - Samuel GOUGEON : 5.5.0 extensions, page overhauled
*
* Copyright (C) 2012 - 2016 - Scilab Enterprises
*
* 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:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="flipdim" xml:lang="ja">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
+ xmlns:scilab="http://www.scilab.org" xml:id="flipdim" xml:lang="ja">
<refnamediv>
<refname>flipdim</refname>
<refpurpose>指定した次元に沿って x ブロック要素を反転</refpurpose>
</refnamediv>
<refsynopsisdiv>
<title>呼び出し手順</title>
- <synopsis>y = flipdim(x, dim [,sb])</synopsis>
+ <synopsis>
+ y = flipdim(x, dim)
+ y = flipdim(x, dim, blockSize)
+ </synopsis>
</refsynopsisdiv>
<refsection>
<title>引数</title>
<varlistentry>
<term>x, y</term>
<listitem>
- <para>任意の型, 同じ大きさのスカラー, ベクトル, 行列またはハイパー行列</para>
+ <para>
+ ベクトル、行列、または任意の通常のデータ型のハイパーマトリックスを含む。
+ <varname> y </varname>は<varname> x </varname>のサイズを取得します。
+ </para>
</listitem>
</varlistentry>
<varlistentry>
<term>dim</term>
<listitem>
- <para>正の整数, 反転させる次元の番号</para>
+ <para>
+ positive integer : index of the dimension / direction of <literal>x</literal>
+ along which the order of <varname>x</varname> components must be inverted.
+ </para>
</listitem>
</varlistentry>
<varlistentry>
- <term>sb</term>
+ <term>blockSize</term>
<listitem>
- <para>正の整数, 交換するブロックの大きさ</para>
+ <para>
+ a positive integer, sub-multiple of <literal>size(x,dim)</literal>:
+ number of rows, of columns, of pages etc in each block. Default value = 1
+ </para>
</listitem>
</varlistentry>
</variablelist>
<refsection>
<title>説明</title>
<para>
- 任意の型のスカラー/ベクトル/配列/ハイパー行列 <literal>x</literal>と
- 2つの正の整数<literal>dim</literal>および<literal>sb</literal>を指定すると,
- この関数は大きさ<literal>sb</literal>のブロック要素により
- <literal>x</literal>の次元番号 <literal>dim</literal>
- に沿って x の要素を反転します.
- (<literal>x</literal> および <literal>y</literal> は同じ大きさとなります)
+ <literal>flipdim(x, 1)</literal> inverts the order of
+ <emphasis role="italic">rows</emphasis> in the matrix or hypermatrix
+ <varname>x</varname>.
</para>
<para>
- オプションパラメータ<literal>sb</literal> (Size Block) により,
- ブロックの大きさ <literal>sb*size(x,2)</literal>
- (<literal>dim=1</literal>) または <literal>size(x,1)*sb</literal> (<literal>dim=2</literal>)
- での反転が可能となります.
+ <literal>flipdim(x, 2)</literal> inverts the order of
+ <emphasis role="italic">columns</emphasis> of <varname>x</varname>.
+ </para>
+ <para>
+ <literal>flipdim(x, 3)</literal> inverts the order of
+ <emphasis role="italic">pages</emphasis> in the hypermatrix
+ <varname>x</varname>. Etc.
+ </para>
+ <para>
+ The optional parameter <literal>blockSize</literal> allows splitting
+ <varname>x</varname> in <literal>size(x,1)/blockSize</literal> blocks
+ of <varname>blockSize</varname> rows (<literal>dim=1</literal>),
+ or in <literal>size(x,2)/blockSize</literal> blocks of <varname>blockSize</varname>
+ columns (<literal>dim=2</literal>), etc (<literal>dim>2</literal>)
+ and to invert their order.
+ In each block, the order of components (rows, columns, pages etc)
+ is unchanged.
</para>
</refsection>
<refsection>
<title>例</title>
<programlisting role="example"><![CDATA[
// 例 1: x の要素を最初の次元に沿って反転
-x=[1 2 3 4; 5 6 7 8];
-dim=1;
-y=flipdim(x,dim)
+x = [1 2 3 4; 5 6 7 8];
+y = flipdim(x, 1)
+
// 例2: x の要素を2番目の次元に沿って反転
-dim=2;
-y=flipdim(x,dim)
+y = flipdim(x, 2)
+
// 例3: x の要素を3番目の次元に沿って反転
-x=matrix(1:48,[3 2,4,2]);
-dim=3;
-y=flipdim(x,dim)
+x = matrix(1:48,[3 2,4,2]);
+y = flipdim(x, 3)
+
// 例4: 最初の例を複素数に
x = [1+%i 2*%i 3 4; 5 6-%i 7 8*%pi*%i]
-dim = 1
-y = flipdim(x, dim)
+y = flipdim(x, 1)
+
// 整数エンコードされた数値
x = int16(grand(4, 3, 2, "uin", -9, 9))
y = flipdim(x, 1)
+
// 論理値:
x = (grand(3, 4, "uin", -9, 9) > 0)
y = flipdim(x, 2)
+
// テキスト:
x = matrix(strsplit("a":"x", 1:23), 4, 6);
x = x+x
flipdim(x, 2)
+
// 多項式:
x = inv_coeff(grand(3, 9, "uin", 0, 3), 2)
flipdim(x, 1)
+
// 有理数:
n = inv_coeff(grand(3, 9, "uin", 0, 3), 2);
d = inv_coeff(grand(3, 9, "uin", 0, 3), 2);
flipdim(r, 2)
]]></programlisting>
<para>
- <literal>sb</literal>の使用例:
+ <literal>blockSize</literal>の使用例 :
</para>
<programlisting role="example"><![CDATA[
X = [0 1 2 3 4 5 6 7 8 9 10 11];
flipdim(X, 2, 3) // => [9 10 11 6 7 8 3 4 5 0 1 2]
flipdim(X, 2, 4) // => [8 9 10 11 4 5 6 7 0 1 2 3]
flipdim(X, 2, 6) // => [6 7 8 9 10 11 0 1 2 3 4 5]
-// sbがxの指定した次元を分割しない場合はエラー.
-y = flipdim(x, 2, 5); // size(X) = [1 12] および sb=5 は 12を割り切れない.
+// blockSizeがxの指定した次元を分割しない場合はエラー.
+y = flipdim(x, 2, 5); // size(X) = [1 12] および blockSize=5 は 12を割り切れない.
]]></programlisting>
+ <para>Example of results:</para>
+ <screen><![CDATA[
+--> x
+ x =
+ -5 -2 0 9
+ 0 -7 -6 9
+ -1 -8 -7 8
+
+--> flipdim(x, 1)
+ ans =
+ -1 -8 -7 8
+ 0 -7 -6 9
+ -5 -2 0 9
+
+--> flipdim(x, 2)
+ ans =
+ 9 0 -2 -5
+ 9 -6 -7 0
+ 8 -7 -8 -1
+]]></screen>
+ <para></para>
+ <screen><![CDATA[
+--> x
+ x =
+(:,:,1)
+ 9 4 -3
+ -4 -8 -3
+
+(:,:,2)
+ 5 8 9
+ 4 4 9
+
+--> flipdim(x, 3)
+ ans =
+(:,:,1)
+ 5 8 9
+ 4 4 9
+
+(:,:,2)
+ 9 4 -3
+ -4 -8 -3
+]]></screen>
+ <para></para>
+ <screen><![CDATA[
+--> x
+ x =
+ -2 3 -5 9 -4 -8
+ 2 8 4 -9 6 -6
+ -9 8 3 4 -3 4
+
+--> flipdim(x, 2, 2)
+ ans =
+ -4 -8 -5 9 -2 3
+ 6 -6 4 -9 2 8
+ -3 4 3 4 -9 8
+
+--> flipdim(x, 2, 3)
+ ans =
+ 9 -4 -8 -2 3 -5
+ -9 6 -6 2 8 4
+ 4 -3 4 -9 8 3
+]]></screen>
+ </refsection>
+ <refsection role="see also">
+ <title>参照</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="fftshift">fftshift</link>
+ </member>
+ <member>
+ <link linkend="ifftshift">ifftshift</link>
+ </member>
+ <member>
+ <link linkend="colon">colon</link>
+ </member>
+ </simplelist>
</refsection>
<refsection>
<title>履歴</title>
<revremark>
10進数から任意の型に拡張: 論理値, 整数, 文字列, 多項式および有理数.
<literal>x</literal>ブロック毎に反転するために,
- 新しい入力引数 <literal>sb</literal>が追加されました.
+ 新しい入力引数 <literal>blockSize</literal>が追加されました.
</revremark>
</revision>
</revhistory>