「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 float arrayParaTypeReal; | |
− | + | typedef struct Array { | |
− | + | arrayParaTypeInteger dim; | |
− | + | arrayParaTypeInteger n[ARRAY_MAX_DIMENSION]; | |
− | + | arrayParaTypeReal* A; | |
− | + | } 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)