<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/cvlec/">
    <title>cvlec @ ウィキ</title>
    <link>http://w.atwiki.jp/cvlec/</link>
    <atom:link href="https://w.atwiki.jp/cvlec/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>cvlec @ ウィキ</description>

    <dc:language>ja</dc:language>
    <dc:date>2013-12-21T11:13:47+09:00</dc:date>
    <utime>1387592027</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/22.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/21.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/1.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/19.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/20.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/18.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/15.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/13.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/22.html">
    <title>数独</title>
    <link>https://w.atwiki.jp/cvlec/pages/22.html</link>
    <description>
      *数独を解く

**Python環境の準備

[[Anaconda python]] のページで、Anaconda pythonをインストールしている前提

今回はnotebookを使います。 
#highlight(){
ipython notebook --pylab=inline
}

notebook の pylab 環境ではない場合には、ipython を立ち上げて、以下のライブラリ読み出しで pylab が使えるようにします。

#highlight(python){
from pylab import *
}

** プログラム

プログラム中の# は、コメントなので入力しなくてもOK

#highlight(python){

def checkzero(mm):
# 入力された数列から0値のインデックスリストを作成
    rex = []
    for i in range(0,len(mm)):
        if mm[i] == 0:
            rex.append(i)
    return rex

def convxy(idx):
# 0 から 80 のインデックスを X,Y 座標に変換
    y = int(idx/9)
    x = idx - y * 9
    return y,x

def cropvar(mm,idx):
# 数独のデータから、横(hval), 縦(vval),ボックス(box)の値を抽出
    y,x = convxy(idx)
    hval = mm[y,:]
    vval = mm[:,x]
    bx = int(x/3)*3
    by = int(y/3)*3

    box = mm[by:by+3,bx:bx+3]
    # flatten() は、行列を１次元ベクトルに変換
    return box.flatten(),hval,vval,(y-by)*3+(x-bx),y,x


def expectval(j):
# 縦、横、ボックスのリストから出てきていない数値を抽出する
    cc = [0,0,0,0,0,0,0,0,0,0]
    for i in range(0,9):
        for k in range(0,3):
            idx = int(j[k][i])
            cc[idx] = cc[idx] + 1
            
    #print cc
    exlist = []
    for cidx in range(1,10):
        if cc[cidx] == 0:
            exlist.append(cidx)

    return exlist



def onevaluefit(ns):
# 対象のセルに対して、出現していない数値が１つだけの場合には、それを当てはめる
    zcnt = checkzero(ns.flatten())
    
    #print &quot;onevaluefit : &quot; + str(len(zcnt))
    
    for h in range(0,len(zcnt)):

        rex = checkzero(ns.flatten())
        
        if len(rex) == 0:
            #print ns
            return ns
        
        upcnt = 0
        #print &quot;iter:&quot; + str(h) + &quot; rexcnt = &quot; + str(len(rex))
        for idx in rex:
            j = cropvar(ns,idx)
            elis = expectval(j)
            #print elis
            if len(elis) == 1:
                y,x = convxy(idx)
                ns[y][x] = elis[0]
                upcnt = upcnt + 1
                #print x,y,idx,elis[0]
            
        if upcnt == 0:
            break
    #print nres
    
    return None


def twovaluefit(ns, stage, limitlevel = 3):
# 数値の候補が２つ以上ある場合には、それぞれの数値を設置した場合の仮説を立てて、以降の処理を再帰的に処理する
    if stage == limitlevel:
        return None

    if onevaluefit(ns) is not None:
        return ns
    
    # first stage : fit one value
    zcnt = checkzero(ns.flatten())
    
    
    for h in range(0,len(zcnt)):
        rex = checkzero(ns.flatten())
        
        if len(rex) == 0:
            return ns
        
        upcnt = 0

        for idx in rex:
            j = cropvar(ns,idx)
            elis = expectval(j)
            y,x = convxy(idx)

            if len(elis) == 1:
                ns[y][x] = elis[0]
                upcnt = upcnt + 1
 
　　　　　　# 候補が２つの場合
            if len(elis) == 2:
                ns1 = ns.copy()
                ns2 = ns.copy()
                ns1[y][x] = elis[0]
                
                C1 = twovaluefit(ns1,stage+1,limitlevel)
                if C1 is not None:
                    return C1
                
                ns2[y][x] = elis[1]
                C2 = twovaluefit(ns2,stage+1,limitlevel)
                if C2 is not None:
                    return C2

        if upcnt == 0:
            break
    

    return None

}

** テストプログラム

#highlight(python){

# 問題を設定する。9x9の問題
sudokudata = array([[ 0, 0, 0, 0, 7, 0, 0, 6, 0,], \
                    [ 3, 0, 0, 9, 0, 0, 1, 0, 0,], \
                    [ 0, 0, 2, 0, 0, 4, 0, 0, 0,], \
                    [ 4, 0, 0, 6, 0, 0, 3, 0, 9,], \
                    [ 1, 0, 0, 0, 4, 0, 0, 0, 2,], \
                    [ 9, 0, 7, 0, 0, 5, 0, 0, 4,], \
                    [ 0, 0, 0, 4, 0, 0, 7, 0, 0,], \
                    [ 0, 0, 4, 0, 0, 6, 0, 0, 3,], \
                    [ 0, 7, 0, 0, 2, 0, 0, 0, 0,]])

# 答えを格納する sudokucheck としてコピーする（イコールだけだと浅いコピーで元が上書きされる）
sudokucheck = sudokudata.copy()

# 解法。この問題は難しいので結構時間がかかる(10分程度）
# 引数の１番目：問題の9x9のarray
# 引数の２番目：探索の開始カウントとして 0 を入力
# 引数の３番目：仮説を何段まで行うか？初級であれば１で良い。この問題は５段までしないと解けない。

print twovaluefit(sudokucheck,0,5)

}

答えが表示される

#highlight(python){
[[8 9 1 3 7 2 4 6 5]
 [3 4 6 9 5 8 1 2 7]
 [7 5 2 1 6 4 9 3 8]
 [4 2 5 6 1 7 3 8 9]
 [1 6 3 8 4 9 5 7 2]
 [9 8 7 2 3 5 6 1 4]
 [2 3 8 4 9 1 7 5 6]
 [5 1 4 7 8 6 2 9 3]
 [6 7 9 5 2 3 8 4 1]]
}    </description>
    <dc:date>2013-12-21T11:13:47+09:00</dc:date>
    <utime>1387592027</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/21.html">
    <title>Anaconda python</title>
    <link>https://w.atwiki.jp/cvlec/pages/21.html</link>
    <description>
      *Anaconda Python

Pythonはいろいろとライブラリが揃っているのですが、Windows環境ではいろいろと環境設定が面倒なところもあるので
まとめて環境を設定してくれるものが楽です。

ここから、ダウンロードします。
http://continuum.io/downloads


含まれているパッケージは、http://docs.continuum.io/anaconda/pkgs.html　を参照ください。
よく使うものとしては、
- NumPy
- SciPy
- IPython
- Matplotlib

notebookは、Webブラウザでインターラクティブに pythonのコード編集と結果を見られるツールです。
使い方は、コマンドプロンプトを立ち上げて

#highlight(){
ipython notebook --pylab=inline
}

とします。ipython は、コードの補完やヒストリーが使える pythonのフロントエンドで、
notebook を pylab をブラウザ内に表示するように立ち上げます。

すると、IPython Dashboard というページが開きます。
[New Notebook]ボタンを押すと、編集画面になります。

コマンドの入力に対して、[Shift + Enter] で python にセルに書き込まれたプログラムを送信して、
結果をセルの下に表示します。    </description>
    <dc:date>2013-12-21T10:33:38+09:00</dc:date>
    <utime>1387589618</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/1.html">
    <title>トップページ</title>
    <link>https://w.atwiki.jp/cvlec/pages/1.html</link>
    <description>
      ** Pythonでプログラミング
- [[Anaconda python]]
- [[数独]]

** 数値演算
- [[行列]]

** Processing の設定
- [[Processingのインストール]]
- [[Processing + JMyronによるWebCamからの画像保存]]

** OpenCVによるカメラキャリブレーション
- [[カメラキャリブレーションとは]]
- [[キャリブレーションプログラムの使い方]]    </description>
    <dc:date>2013-12-21T10:23:48+09:00</dc:date>
    <utime>1387589028</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/19.html">
    <title>キャリブレーションプログラムの使い方</title>
    <link>https://w.atwiki.jp/cvlec/pages/19.html</link>
    <description>
      * 実行プログラムの準備

OpenCVのカメラキャリブレーションは、サンプルに付属の calibration.cpp をそのまま利用します。

** ソースからビルドする場合

ViualStudio（Expressバージョンは無料で利用可能）が必要

- OpenCV 1.0 は下記のリンクから OpenCV1_1.0.exe(セルフ解凍インストーラー）をダウンロードできます。
http://sourceforge.net/projects/opencvlibrary/files/opencv-win/1.0/OpenCV_1.0.exe/download

- c:\OpenCV1.0 としてインストールする
- VisualStudioを起動する
- New プロジェクトで、Windows コンソールプログラムのプロジェクトを設定
- samples/c/calibration.cpp をプロジェクトフォルダーにコピー
- プロパティから includeパスに以下のパスを追加
-- c:\OpenCV1.0\cv\include
-- c:\OpenCV1.0\cvaux\include
-- c:\OpenCV1.0\cxcore\include
-- c:\OpenCV1.0\otherlibs\highgui
- プロパティの libパスに以下のパスを追加
-- c:\OpenCV1.0\lib
- ビルド
- 実行時には、c:\OpenCV1.0\bin が環境変数PATHに追加されている必要がある（もしくは、必要なcv100.dllなどを実行ファイルと同じ場所にコピーする)

** プレビルドパッケージをダンロードする場合

- ソースからビルドして必要なDLLを同梱したプログラムを
[[cameracalib.zip&gt;&gt;http://www18.atwiki.jp/cvlec/pub/opencvcamcalib/cameracalib.zip]] からダウンロード
- 展開

* キャリブレーションパターンの印刷

- OpenCVのカメラキャリブレーションでは、市松模様の平面パターンを使います.下のA4版パターンのダウンロードする
-- [[checkerboard.pdf&gt;&gt;http://www18.atwiki.jp/cvlec/pub/opencvcamcalib/checkerboard.pdf]]
- PDFの印刷は、用紙に合わせて印刷。用紙は、光沢が無いほうが良い。
- 印刷した格子の１辺の長さをものさしで実測（自分の環境では、A4で印刷して、横の最大長さ272mm／14ブロック=19.429mm）
- このパターンでは、横x縦有効点数は13x9 となる 
- できるだけ平面の板に、貼り付ける

* キャリブレーションをカメラで撮影

- キャリブレーションのパターンが全て収まるように、&#039;&#039;かつ&#039;&#039;、画面いっぱいになるように、傾き方が異なる複数の画像を5枚以上準備する
-- Webカメラを利用している場合には、[[Processing + JMyronによるWebCamからの画像保存]]のプログラムを利用
- 複数の画像のファイル名を１行づつ記載した画像ファイルリストのテキストファイルを作成する.以下、リストのファイルを imglist.txt とする。
#highlight(){
screen-0001.tif
screen-0002.tif
screen-0003.tif
screen-0004.tif
screen-0005.tif
}

* プログラムの使い方

calibration プログラムの引数

 -w &lt;board_width&gt;  : 市松模様の内側の交点の数＜横＞
 -h &lt;board_height&gt; : 市松模様の内側の交点の数＜縦＞
 -n &lt;number_of_frames&gt; : フレーム数
 -d &lt;delay&gt; : ライブモードでの次のフレームを取るまでの時間
 -s &lt;square_size&gt; : １つのブロックの長さ
 -o &lt;out_camera_params&gt; : 出力パラメータのファイル名
 -op : 検出点の位置を出力
 -oe : ボードの位置姿勢のパラメータを出力
 -zt : tangential 歪みを０とする
 -a  : 画素のアスペクト比 ( fx / fy )
 -p :主点位置を固定して推定
 -v : 画像を垂直方向にフリップ
 input_data : 画像ファイルリストを記述したファイル名

サンプルのキャリブレーションパターンを利用した場合の引数の例

 cameracalib.exe -w 13 -h 9 -s 19.429 -o camparam.txt imglist.txt

- 市松模様の内部の交点は 13x9, 一つのブロックの長さは 19.429mm
- 出力をcamparam.txt として指定
- 複数のキャリブレーションパターンを撮影した画像ファイルのリストの名前は imglist.txt

実行してキャリブレーションパターンが検出されたものは、虹色の検出画像が表示される。失敗した場合には、これが表示されない
#image(width=320,height=240,http://www18.atwiki.jp/cvlec/pub/opencvcamcalib/sample.png)

* 出力ファイルの内容
指定したファイル（デフォルトではout_camera_data.yml)の内容は次のような例となっている
#highlight(){{
%YAML:1.0
calibration_time: &quot;08/07/11 14:50:21&quot;
image_count: 7
image_width: 640
image_height: 480
board_width: 13
board_height: 9
square_size: 19.4290008544921880
flags: 0
camera_matrix: !!opencv-matrix
   rows: 3
   cols: 3
   dt: d
   data: [ 787.7153004285625000, 0., 355.4804618224245000, 0.,
       788.1705331041230200, 246.9255774405008900, 0., 0., 1. ]
distortion_coefficients: !!opencv-matrix
   rows: 1
   cols: 4
   dt: d
   data: [ 0.1085696728874809, -0.5085092376095411,
       -6.4507058124747213e-003, 3.4192708573512923e-003 ]
avg_reprojection_error: 0.2680457910484156
per_view_reprojection_errors: !!opencv-matrix
   rows: 1
   cols: 7
   dt: d
   data: [ 0.2542588975694444, 0.2548741397694645, 0.2239987626034989,
       0.2073959937462440, 0.3121782938639323, 0.2910802466237647,
       0.3325342031625601 ]
}}

撮像画像のサイズ
- image_width = 640
- image_height = 480
camera_matrixの項に記述されている3x3の行列は次のようになっている
$$\left(\begin{array}{ccc}f_x &amp; 0 &amp; c_x \\ 0 &amp; f_y &amp; c_y \\ 0 &amp; 0 &amp; 1\\ \end{array} \right)$$
- fx = 787.7153 焦点距離 x
- fy = 788.1705 焦点距離 y
- cx = 355.4805 主点位置 x
- cy = 246.9256 主点位置 y

distortion_coefficientsの 1x4 のパラメータは、(k_1,k_2,p_1,p_2)となっている。
- k1 =  0.1085697 radial distortion 係数 k1
- k2 = -0.5085092 radial distortion 係数 k2
- p1 = -6.4507058e-3 tangential distortion 係数 p1
- p2 =  3.4192708e-3 tangential distortion 英数 p2

avg_reprojection_error は、平均再投影誤差で推定モデルと検出点との画像上の距離の平均となっている。この値が小さいほど、モデルの当てはまり方が正しいこととなる。逆に１より大きい場合には、検出に失敗した場合が考えられる。webcamの場合 ローリングシャッターの影響で、手ぶれにより画像が歪んでしまう場合が多い。

----
コメント
#pcomment(reply)    </description>
    <dc:date>2011-08-07T15:22:26+09:00</dc:date>
    <utime>1312698146</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/20.html">
    <title>カメラキャリブレーションとは</title>
    <link>https://w.atwiki.jp/cvlec/pages/20.html</link>
    <description>
      * ピンホールカメラモデルの歪みのモデル
カメラレンズの歪みを、半径方向の歪み(radial distortion)と、円周方向の歪み(tangential distortion)として、以下の式をモデルとして使う場合が多い。
$$x&#039; = x / z$$
$$y&#039; = y / z$$
$$x&#039;&#039; = x&#039; (1 + k_{1} r^2 + k_{2} r^4 + k_{3} r^6) + 2 p_{1} x&#039; y&#039; + p_{2} (r^2 + 2 x&#039;^2) $$
$$y&#039;&#039; = y&#039; ( 1+ k_{1} r^2 + k_{2} r^4 + k_{3} r^6) + p_{1} (r^2 + 2 y&#039;^2) + 2 p_{2} x&#039; y&#039; $$

ここでは、
- $$x,y,z$$ カメラ座標系での対象の３次元位置
- $$r^2 = x&#039;^2 + y&#039;^2$$

画像の位置は
$$u = f_{x} x&#039;&#039; + c_{x}$$
$$v = f_{y} y&#039;&#039; + c_{y}$$
ただし
- $$f_{x}$$ X方向焦点距離
- $$f_{y}$$ Y方向焦点距離
- $$c_{x}$$ X方向主点位置
- $$c_{y}$$ Y方向主点位置

* カメラキャリブレーションとは
カメラキャリブレーションのプログラムでは、上述のパラメータのうち次のパラメータを複数のキャリブレーションパターンを撮影した画像から求めることとなる。
- $$f_x$$ 
- $$f_y$$ 
- $$c_x$$
- $$c_y$$
- $$k_1$$
- $$k_2$$
- $$p_1$$
- $$p_2$$

* 使い方
カメラの歪みモデルは、理想的な位置から歪んだ実際の画像上の位置を変換する式である。そのため、画像の特徴点の２次元位置から理想的な歪みの無い位置を直接求めることはできない。一般には次の方法を使う

** 画像の歪みを画像全体で一度に補正する方法
補正するための各座標点の変換値をテーブルとして保持する。
画像のサイズの全ての画素に対して、歪み位置を計算してテーブルとして保持しておき、その近傍画素の値から内挿した値を使って歪み補正画像を作成して、それを参照する。

** モデル式のヤコビアンから、非線形最適化の反復により歪み座標から理想的な座標を算出する
歪みモデルの式のヤコビアンから、最適化計算を行い理想的な座標へ変換する。繰り返しは５回程度で収束する。計算する対象が少ない場合には良いが、多い場合には計算時間が問題となる場合がある。    </description>
    <dc:date>2011-08-07T15:16:28+09:00</dc:date>
    <utime>1312697788</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/18.html">
    <title>Processing + JMyronによるWebCamからの画像保存</title>
    <link>https://w.atwiki.jp/cvlec/pages/18.html</link>
    <description>
      * capture &amp; save sample program

ここでは、JMyronのライブラリを使って画像の表示と保存を行う。

[[capturesample.pde &gt; http://www18.atwiki.jp/cvlec/pub/src/capturesample.pde]] 右クリック＋「ファイルへ保存」でローカルに保存して

#highlight(java){{
// JMyron を利用するためのライブラリの読み込み
import JMyron.*;

// カメラオブジェクト
JMyron cam;
// カメラの解像度X　事前にサポートされている値を設定
int CAMWIDTH = 640;
// カメラの解像度Y
int CAMHEIGHT = 480;

// プログラムが起動後に呼び出される関数
void setup() {
  // フレームのサイズをカメラのキャプチャーサイズに合わせる
  size(CAMWIDTH,CAMHEIGHT);
  
  // カメラオブジェクトの初期化
  cam = new JMyron();
  // カメラの取り込みを指定解像度で開始
  cam.start(CAMWIDTH, CAMHEIGHT);
  // JMyronの領域検出機能を抑制
  cam.findGlobs(0);
}

// 画面が書き換わるときに呼び出される関数
void draw()
{
  // カメラの取り込みを更新
  cam.update();
  // カメラの画像のポインタを取り込み
  int [] img = cam.image();

  // 表示画素を上書きする場合には、loadPixels()が必要
  loadPixels();
  // 表示画素を取り込んだ画素で置き換える
  for (int i =0 ; i &lt; CAMWIDTH * CAMHEIGHT ; i++){
    // pixles[] は、表示画素へのアクセス
    pixels[i] = img[i];
  }  
  // 表示画素の内容を更新して書き換え
  updatePixels();
  
}

// マウスボタンが押されたときに呼び出される関数
void mousePressed()
{
  // 画像を連番で保存する
  saveFrame();
  // 保存されたことを表示
  println(&quot;save frame&quot;);
  
}

// キーボードが押されたときの呼び出し関数
void keyPressed() {
  // &#039;s&#039; が押されたときに設定を呼び出す
  if (key == &#039;s&#039;){
    // カメラの設定画面を表示する
    cam.settings();
  }
}

}}

* 使い方

- processing を起動してメニュー「File」-「New」から新しいプロジェクトを作成
- 上のプログラムをコピー＆ペースト
- 「File」-「Save」でプロジェクトを保存する（保存しないと、ファイルの書き出し場所がわからない）
- 「Skectch」-「Run」で起動
- 画面をクリックすると表示されている画面を &quot;screen-XXXX.tif&quot; というファイルで保存
- &#039;s&#039; キーを押すと、WebCamの露出などを設定できる画面が表示    </description>
    <dc:date>2011-08-07T09:40:13+09:00</dc:date>
    <utime>1312677613</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/15.html">
    <title>Processingのインストール</title>
    <link>https://w.atwiki.jp/cvlec/pages/15.html</link>
    <description>
      * Processingのダウンロード

- http://www.processing.org/ の　[[Downloadsのページ&gt;http://www.processing.org/download/]]から[[processing-1.5.1-windows.zip&gt;http://processing.googlecode.com/files/processing-1.5.1-windows.zip]]をダウンロード
- ZIP形式のファイルなので、そのまま展開ツールでc:\workなどに展開（Windows7の場合は、c:\Program Files\への展開は管理者権限を伴うのでおすすめしません）
- processing-1.5.1 のフォルダが展開されて、そこに processing.exe がある。しかし、ここで起動をさせずに、次の JMyron のインストールを行う。

* JMyronのインストール

- http://webcamxtra.sourceforge.net/download.shtml からProcessing 向けのライブラリである[[JMyron0025.zip&gt;http://webcamxtra.sourceforge.net/distro/JMyron0025.zip]]をダウンロード

- 展開後に、
-- JMyron -&gt; processing-1.5.1/modes/java/libraries/ にコピー
-- JMyron Examples -&gt; processing-1.5.1/modes/java/examples/ にコピー
-- Extra DLLs/DSVL.dll -&gt; processing-1.5.1/ にコピー
-- Extra DLLS/myron_ezcam.dll -&gt; processing-1.5.1/ にコピー

- Windows7 64bit環境では、JMyronはJava32bitでないと動作しない。そのため、前述のProcessingはJava(32bit) を含めたバージョンを使用する。

* Processingの起動テスト
今回ダウンロードしたファイルには、Javaの実行環境も同梱されているため、Processing.exe をそのまま起動することができる。

* 使い方
- 日本語のリファレンス http://tetraleaf.com/p5_reference_alpha/
- processing 基礎最速入門 http://www.catch.jp/wiki/index.php?Processing%B4%F0%C1%C3%BA%C7%C2%AE%C6%FE%CC%E7    </description>
    <dc:date>2011-08-06T15:36:37+09:00</dc:date>
    <utime>1312612597</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/2.html">
    <title>メニュー</title>
    <link>https://w.atwiki.jp/cvlec/pages/2.html</link>
    <description>
      **メニュー
-[[トップページ]]
-[[プラグイン紹介&gt;プラグイン]]
-[[まとめサイト作成支援ツール]]
-[[メニュー]]
-[[メニュー2]]

----
更新履歴
#recent()

----
**リンク
-[[@wiki&gt;&gt;http://atwiki.jp]]
-[[@wikiご利用ガイド&gt;&gt;http://atwiki.jp/guide/]]

**他のサービス
-[[無料ホームページ作成&gt;&gt;http://atpages.jp]]
-[[無料ブログ作成&gt;&gt;http://atword.jp]]
-[[2ch型掲示板レンタル&gt;&gt;http://atchs.jp]]
-[[無料掲示板レンタル&gt;&gt;http://atbbs.jp]]
-[[お絵かきレンタル&gt;&gt;http://atpaint.jp/]]
-[[無料ソーシャルプロフ&gt;&gt;http://sns.atfb.jp/]]

// リンクを張るには &quot;[&quot; 2つで文字列を括ります。
// &quot;&gt;&quot; の左側に文字、右側にURLを記述するとリンクになります


//**更新履歴
//#recent(20)

&amp;link_editmenu(text=ここを編集)    </description>
    <dc:date>2011-07-21T22:19:09+09:00</dc:date>
    <utime>1311254349</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/14.html">
    <title>行列</title>
    <link>https://w.atwiki.jp/cvlec/pages/14.html</link>
    <description>
      * 行列表現
行列は、Ｍ行ｘＮ列と行の次に列として表現する。
そのため、添え字は $$a_{mn}$$ と表記する。

3x4の行列$$a$$の要素は、次のような要素となる。
$$\left(\begin{array}{ccc}a_{11} &amp; a_{12} &amp; a_{13} &amp; a_{14} \\ a_{21} &amp; a_{22} &amp; a_{23} &amp; a_{24} \\ a_{31} &amp; a_{32} &amp; a_{33} &amp; a_{34} \\ \end{array} \right)$$

行列は、乗算する順番が重要となる。右側からかけるか、左側からかけるかが重要となる。    </description>
    <dc:date>2011-07-21T21:49:03+09:00</dc:date>
    <utime>1311252543</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/13.html">
    <title>tips</title>
    <link>https://w.atwiki.jp/cvlec/pages/13.html</link>
    <description>
      **分からないことは？
-[[@wiki ご利用ガイド&gt;http://atwiki.jp/guide/]]
-[[よくある質問&gt;http://atwiki.jp/guide/category1.html]]
-[[無料で会員登録できるSNS内の@wiki助け合いコミュニティ&gt;http://sns.atfb.jp/view_community2.php?no=112]]
-[[@wiki更新情報&gt;http://www1.atwiki.jp/guide/pages/264.html]]
-[[@wikiへのお問合せフォーム&gt;http://atwiki.jp/helpdesk]]
等をご活用ください

**@wiki助け合いコミュニティの掲示板スレッド一覧
#atfb_bbs_list(112)

**その他お勧めサービスについて
-[[大容量１Ｇ、PHP/CGI、MySQL、FTPが使える無料ホームページは@PAGES&gt;&gt;http://atpages.jp/]]
-[[無料ブログ作成は@WORDをご利用ください&gt;&gt;http://atword.jp/]]
-[[2ch型の無料掲示板は@chsをご利用ください&gt;&gt;http://atchs.jp/]]
-[[フォーラム型の無料掲示板は@bbをご利用ください&gt;&gt;http://atbb.jp/]]
-[[お絵かき掲示板は@paintをご利用ください&gt;&gt;http://atpaint.jp/]]
-[[その他の無料掲示板は@bbsをご利用ください&gt;&gt;http://atbbs.jp/]]
-[[無料ソーシャルプロフィールサービス @flabo(アットフラボ)&gt;&gt;http://sns.atfb.jp]]

**おすすめ機能
-[[気になるニュースをチェック&gt;http://atwiki.jp/guide/17_174_ja.html]]
-[[関連するブログ一覧を表示&gt;http://atwiki.jp/guide/17_161_ja.html]]

**その他にもいろいろな機能満載！！
-[[@wikiプラグイン&gt;http://atwiki.jp/guide/category17.html]]
-[[@wiki便利ツール&gt;http://atwiki.jp/guide/category32.html]]
-[[@wiki構文&gt;http://atwiki.jp/guide/category16.html]]
-[[@wikiプラグイン一覧&gt;http://www1.atwiki.jp/guide/pages/264.html]]
-[[まとめサイト作成支援ツール&gt;http://atwiki.jp/matome/]]

**@wikiへようこそ
-ウィキはみんなで気軽にホームページ編集できるツールです。
-このページは自由に編集することができます。
-メールで送られてきたパスワードを用いてログインすることで、各種変更（サイト名、トップページ、メンバー管理、サイドページ、デザイン、ページ管理、等）することができます

**まずはこちらをご覧ください。
-[[@wikiの基本操作&gt;http://atwiki.jp/guide/category2.html]]
-[[用途別のオススメ機能紹介&gt;http://atwiki.jp/guide/category22.html]]
-[[@wikiの設定/管理&gt;http://atwiki.jp/guide/category6.html]]    </description>
    <dc:date>2011-07-21T21:41:12+09:00</dc:date>
    <utime>1311252072</utime>
  </item>
  </rdf:RDF>
