FrontPage  ページ一覧  検索  更新履歴  RSS  ログイン

Psychlops Wiki - Data 差分

  • 最後の更新で追加された部分はこのように表示します。
  • 最後の更新で削除された部分はこのように表示します。

!概要
データ処理に関する関数とする予定でしたが、ExperimentalMethod系とFile系に機能が分割され、廃止される予定となっています。


!メソッド

!!Data::savearray(char* filename, char* header, int length_of_array, ...)

!!!概要
任意の配列をファイルに保存します。

!!!引数
:char * filename:ファイル名を文字列で与えます。文字列中に"%TIME_"を埋め込むと、|| Condition1[0] || Condition2[0] ||
yyyymmddhhmm形式の日付に置き換えます。
:char * header:ヘッダ行を文字列で与えます。通常書き出す配列のラベルを指定します。区切り文字には通常タブ文字(\t)を指定してください。
:int length_of_array:書き出す配列の長さを指定します。実際に確保されている配列より大きい値を指定した場合の動作は不定であり、しばしばエラーが発生します。

!!!用例
const int trials = 60;
int condition_a[trials];
double condition_b[trials];
int results[trials];

// 実験コード

Data::savearray("Experiment_%TIME_.dat", "condition1\tcondition2\tresult", trials , condition_a, condition_b, result);


!!備考

!!!ファイルの出力形式
タブ区切り形式になります。表計算ソフトで読み込むと以下のようになります。
||ヘッダ|| || ||
|| Condition1[0] || Condition2[0] || Result[0] ||
|| Condition1[1] || Condition2[1] || Result[1] ||
|| Condition1[2] || Condition2[2] || Result[2] ||
|| ...           || ...           || ...       ||


!!!ファイルの保存場所(デフォルト)
*OSX /Users/(USER_NAME)/Documents/Psychlops
*Win 実行ファイルと同じ場所


!!Data::loadarray(char* filename, int num_lines_to_skip, int length_of_array, ...)

!!!概要
特定フォーマットのファイルを配列に読み込みます。savearrayの「真逆」の機能になります。

!!!引数
:char * filename:ファイル名を文字列で与えます。
:int num_lines_to_skip:ファイル開始から配列解釈を始めるまでに読みとばす行数を指定します。savearrayのデフォルトで書きだしたものを読みだす場合2を指定します。
:int length_of_array:書き出す配列の長さを指定します。実際に確保されている配列・ファイルの行数より大きい値を指定した場合は誤動作を引き起こします。通常はエラーとなりますが、エラーが出力されないこともありますので、読み込んだデータをsavearrayで書き出すなどしてご確認ください。

!!!用例
const int trials = 60;
int condition_a[trials];
double condition_b[trials];
int results[trials];

// 実験コード

Data::loadarray("Experiment_%TIME_.dat", 2, trials, condition_a, condition_b, result);


!!備考

!!!ファイルの入力形式
savearrayと同様ののタブ区切り形式になります。

ファイルのカラム数と配列の数が異なる場合、あるいはカラムと配列のデータ型が一致しない場合は意図しない動作をしますが、エラーとならないので注意が必要です。

(例)
読み込むファイル(3カラム)
|| Condition1[0] || Condition2[0] || Result[0] ||
|| Condition1[1] || Condition2[1] || Result[1] ||
|| Condition1[2] || Condition2[2] || Result[2] ||
|| ...           || ...           || ...       ||

読み込みコード(2カラムを指定){{br}}
Data::loadarray("Experiment_%TIME_.dat", 2, condition_a, condition_b);

読み込まれた内容
||''condition_a''||''condition_a''||
|| Condition1[0] || Condition2[0] ||
|| Result[0]     || Condition1[1] ||
|| Condition2[1] || Result[1]     ||
|| ...           || ...           ||


動作の正確性を確認する場合には、loadarrayしたデータをそのままsavearrayし、データが一致するかどうかを確認してください。


!!!ファイルの保存場所(デフォルト)
savearrayと同様です。