1 <?xml version="1.0" encoding="UTF-8"?>
2 <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="ndgrid" xml:lang="ja">
4 <refname>ndgrid</refname>
11 <synopsis>[X, Y] = ndgrid(x,y)
12 [X, Y, Z] = ndgrid(x,y,z)
13 [X, Y, Z, T] = ndgrid(x,y,z,t)
14 [X1, X2, ..., Xm] = ndgrid(x1,x2,...,xm)
21 <term>x, y, z, ...</term>
27 <term>X, Y, Z, ...</term>
41 2, 3, ..., n次元のグリッド上で関数の評価を行う
46 <literal>x</literal> および <literal> y</literal>
48 <emphasis>i=1,..,nx</emphasis> および <emphasis>j=1,..,ny</emphasis>
49 として,座標<emphasis>(x(i),y(j))</emphasis>となります.
50 そのグリッド上で (例えば<emphasis>f</emphasis>のような)関数の評価を
52 この場合,この関数は,以下のような大きさ<emphasis>nx x ny</emphasis>の
53 2つの行列<literal>X,Y</literal>を計算します :
55 <programlisting role=""><![CDATA[
56 X(i,j) = x(i) for all i in [1,nx]
57 Y(i,j) = y(j) and j in [1,ny]
60 評価は,<literal>Z=f(X,Y)</literal>で行うことができます.
61 (ベクトル引数で<literal>f</literal>を評価するようコードが
64 <literal>/</literal> および <literal>^</literal>の部分に
65 要素毎の演算 <literal>.*</literal>, <literal>./</literal> および
66 <literal>.^</literal>を使用することにより,(一般に)動作します..
69 3次元の場合, 長さ nx, ny および nzの3個のベクトル<literal>x,y,z</literal>
71 <literal>X,Y,Z</literal>は以下のように大きさ
72 <emphasis>nx x ny x nz</emphasis>のハイパー行列となります :
74 <programlisting role=""><![CDATA[
76 Y(i,j,k) = y(j) for all (i,j,k) in [1,nx]x[1,ny]x[1,nz]
80 一般的な場合, m 個の入力引数<literal>x1, x2, ..,
84 <literal>X1, X2, .., Xm</literal> は以下のような
85 大きさ <emphasis>nx1 x nx2 x ... x
90 <programlisting role=""><![CDATA[
91 Xj(i1,i2,...,ij,...,im) = xj(ij)
92 for all (i1,i2,...,im) in [1,nx1]x[1,nx2]x...x[1,nxm]
97 <programlisting role="example"><![CDATA[
100 x = linspace(-1,1,nx);
101 y = linspace(-1,1,ny);
105 //deff("z=f(x,y)","z=128*x.^2 .*(1-x).^2 .*y.^2 .*(1-y).^2");
106 deff("z=f(x,y)","z=x.^2 + y.^3")
109 plot3d(x,y,Z, flag=[2 6 4]); show_window()
113 x = linspace(-1,1,nx);
114 y = linspace(-1,1,ny);
116 deff("z=f(x,y)","z=x.^2 + y.^3")
118 plot3d(x,y,Z, flag=[2 6 4]);
120 <programlisting role="example"><![CDATA[
122 nx = 10; ny = 6; nz = 4;
123 x = linspace(0,2,nx);
124 y = linspace(0,1,ny);
125 z = linspace(0,0.5,nz);
126 [X,Y,Z] = ndgrid(x,y,z);
132 [xf,yf,zf] = nf3d(X(:,:,k),Y(:,:,k),Z(:,:,k));
133 XF = [XF xf]; YF = [YF yf]; ZF = [ZF zf];
137 [xf,yf,zf] = nf3d(matrix(X(:,j,:),[nx,nz]),...
138 matrix(Y(:,j,:),[nx,nz]),...
139 matrix(Z(:,j,:),[nx,nz]));
140 XF = [XF xf]; YF = [YF yf]; ZF = [ZF zf];
144 plot3d(XF,YF,ZF, flag=[0 6 3], leg="X@Y@Z")
145 xtitle("A 3d grid !"); show_window()
148 <refsection role="see also">
150 <simplelist type="inline">
152 <link linkend="kron">kron</link>