Octave で二次元のベクトルマップ (vector map) を扱う例を,プログラムと図解で説明する.
二次元ベクトルマップを表示するプログラム. 関数 draw_2D_vector_map は, x軸とy軸方向のベクトル2つと見た目を変更する引数を持つ.
■ ソースコード
%2次元ベクトルをある間隔で表示するプログラム %span:ベクトルの表示間隔 %U:x軸方向のベクトル成分 %V:y軸方向のベクトル成分 %vector_length:表示したいベクトルの最大長 function draw_2D_vector_map(span,U,V,vector_length) [width,height]=size(U'); [Xspan,Yspan]=meshgrid(1:span:width,1:span:height); Uspan=U(1:span:height,1:span:width); Vspan=V(1:span:height,1:span:width); MAX_LENGTH=max(max(sqrt(power(U,2)+power(V,2)))); %最後を2で割るのはquiverの仕様(バグ?) quiver(Xspan,Yspan,Uspan,Vspan,vector_length/MAX_LENGTH/2); endfunction # テストデータ生成 width=360; height=200; U=repmat(cosd(1:width),height,1); V=repmat(sind(1:width),height,1); draw_2D_vector_map(10,U,V,10); x軸の値を角度として持つベクトル場の例 10ピクセル間隔で長さの最大を10としたときの表示
■ 実行手順
上記の Octave プログラム・ソースコードを hoge.m のようなファイル名で保存した後,octave を起動し
source hoge.m
■ 実行結果の例