「Array(API)」の版間の差分

提供: Eospedia
移動: 案内検索
(ページの作成:「配列を表現するためのオブジェクトです。 == 構造体 == typedef unsigned long arrayParaTypeInteger; typedef float arrayParaTypeReal; t...」)
 
 
(2人の利用者による、間の6版が非表示)
行1: 行1:
配列を表現するためのオブジェクトです。
+
General/'''Array'''は、配列を表現するためのオブジェクトです。一般的な配列(多次元配列)を表現できます。
 +
 
 +
== 定数 ==
 +
ARRAY_MAX_DIMENSION: 5 (最大の配列の次元数)
 +
ARRAY_MIN_DIMENSION: 1 (最小の配列の次元数)
 +
 
 +
ARRAY_SEPARATOR " \t\n," (配列の区切り文字)
  
 
== 構造体 ==
 
== 構造体 ==
  
typedef unsigned long arrayParaTypeInteger;
+
  typedef unsigned long arrayParaTypeInteger;
typedef float        arrayParaTypeReal;
+
  typedef float        arrayParaTypeReal;
 
    
 
    
typedef struct Array {
+
  typedef struct Array {
    arrayParaTypeInteger dim;
+
      arrayParaTypeInteger dim;
    arrayParaTypeInteger n[ARRAY_MAX_DIMENSION];
+
      arrayParaTypeInteger n[ARRAY_MAX_DIMENSION];
    arrayParaTypeReal*  A;
+
      arrayParaTypeReal*  A;
} Array;
+
  } Array;
  
dim: 配列の次元
+
 
n: 各次元の要素数
+
dim: 配列の次元(2次元が行列、1次元がベクトルを表現できます。)
A: 要素を格納している線形ベクター
+
n: 各次元の要素数
 +
A: 要素を格納している線形ベクター
  
 
== API ==
 
== API ==
 +
===初期化===
 
  extern void arrayInit(Array* a, char* message);
 
  extern void arrayInit(Array* a, char* message);
 +
 +
===解放===
 
  extern void arrayFree(Array* a, char* message);
 
  extern void arrayFree(Array* a, char* message);
 +
 +
===フォーマットの説明を出力===
 
  extern void arrayFormatInfoPrint(FILE* fpt, int mode);
 
  extern void arrayFormatInfoPrint(FILE* fpt, int mode);
  
 +
===ファイル読み込み===
 
  extern void arrayReadFromFile(FILE* fpt, Array* a, char* message);
 
  extern void arrayReadFromFile(FILE* fpt, Array* a, char* message);
 +
 +
===ファイル書き出し===
 
  extern void arrayWriteToFile(FILE* fpt, Array* a, char* message);
 
  extern void arrayWriteToFile(FILE* fpt, Array* a, char* message);
  
  extern void arrayPCA(Array* u, Array* C, Array* lambda, Array* X, int mode);
+
===主成分分析===
 +
  extern void arrayPCA(Array* u, Array* C, Array* lambda, Array* X, Array* ave, int mode);
 +
<table border="1">
 +
<tr>
 +
<th>入力</th>
 +
<th>説明</th>
 +
</tr>
 +
<tr>
 +
<td>X</td>
 +
<td>コンターレベル内の座標情報(成分数 * 要素数)</td>
 +
</tr>
 +
</table>
 +
<br>
  
 +
<table border="1">
 +
<tr>
 +
<th>出力</th>
 +
<th>説明</th>
 +
</tr>
 +
<tr>
 +
<td>u</td>
 +
<td>座標情報の固有ベクトル(成分数 * 成分数)</td>
 +
</tr>
 +
<tr>
 +
<td>C</td>
 +
<td>座標情報の共分散(成分数 * 成分数)</td>
 +
</tr>
 +
<tr>
 +
<td>lambda</td>
 +
<td>座標情報の固有値(成分数)</td>
 +
</tr>
 +
<tr>
 +
<td>ave</td>
 +
<td>各成分毎の平均座標(成分数)</td>
 +
</tr>
 +
</table>
 +
<br>
  
 +
===配列要素の格納・取得===
 
下記の関数を使って、各要素の値を格納、取得できます。#defineにより設定されているため、型の自動変換がないため注意が必要です。
 
下記の関数を使って、各要素の値を格納、取得できます。#defineにより設定されているため、型の自動変換がないため注意が必要です。
 
   
 
   
 +
====格納====
 
  arrayDataGet1(a, i0)
 
  arrayDataGet1(a, i0)
 
  arrayDataGet2(a, i0, i1)
 
  arrayDataGet2(a, i0, i1)
行35: 行87:
 
  arrayDataGet5(a, i0, i1, i2, i3, i4)
 
  arrayDataGet5(a, i0, i1, i2, i3, i4)
  
 +
====設定====
 
  arrayDataSet1(a, i0, data)
 
  arrayDataSet1(a, i0, data)
 
  arrayDataSet2(a, i0, i1, data)
 
  arrayDataSet2(a, i0, i1, data)

2014年5月26日 (月) 02:22時点における最新版

General/Arrayは、配列を表現するためのオブジェクトです。一般的な配列(多次元配列)を表現できます。

定数

ARRAY_MAX_DIMENSION: 5 (最大の配列の次元数)
ARRAY_MIN_DIMENSION: 1 (最小の配列の次元数)
ARRAY_SEPARATOR " \t\n," (配列の区切り文字)

構造体

 typedef unsigned long arrayParaTypeInteger;
 typedef float         arrayParaTypeReal;
 
 typedef struct Array {
     arrayParaTypeInteger dim;
     arrayParaTypeInteger n[ARRAY_MAX_DIMENSION];
     arrayParaTypeReal*   A;
 } Array;


dim: 配列の次元(2次元が行列、1次元がベクトルを表現できます。)
n: 各次元の要素数
A: 要素を格納している線形ベクター

API

初期化

extern void arrayInit(Array* a, char* message);

解放

extern void arrayFree(Array* a, char* message);

フォーマットの説明を出力

extern void arrayFormatInfoPrint(FILE* fpt, int mode);

ファイル読み込み

extern void arrayReadFromFile(FILE* fpt, Array* a, char* message);

ファイル書き出し

extern void arrayWriteToFile(FILE* fpt, Array* a, char* message);

主成分分析

extern void arrayPCA(Array* u, Array* C, Array* lambda, Array* X, Array* ave, int mode);
入力 説明
X コンターレベル内の座標情報(成分数 * 要素数)


出力 説明
u 座標情報の固有ベクトル(成分数 * 成分数)
C 座標情報の共分散(成分数 * 成分数)
lambda 座標情報の固有値(成分数)
ave 各成分毎の平均座標(成分数)


配列要素の格納・取得

下記の関数を使って、各要素の値を格納、取得できます。#defineにより設定されているため、型の自動変換がないため注意が必要です。

格納

arrayDataGet1(a, i0)
arrayDataGet2(a, i0, i1)
arrayDataGet3(a, i0, i1, i2)
arrayDataGet4(a, i0, i1, i2, i3)
arrayDataGet5(a, i0, i1, i2, i3, i4)

設定

arrayDataSet1(a, i0, data)
arrayDataSet2(a, i0, i1, data)
arrayDataSet3(a, i0, i1, i2, data)
arrayDataSet4(a, i0, i1, i2, i3, data)
arrayDataSet5(a, i0, i1, i2, i3, i4, data)