変数を指定する

Matlabの関数 inputdlg を使用すると、プログラムの起動時にダイアログを表示させて、変数を指定することができます。

実験を行うたびに変わりうる値を指定するのに便利です。

例えば、実験の開始時に、試行数を決めたり、実験参加者の名前を入力したりすることができます。

prompt={'変数1', '変数2'};
name='入力のテスト';
numlines=1;
defaultanswer={'20','あいうえお'};
answer=inputdlg(prompt,name,numlines,defaultanswer)
mysize = size(answer)
if mysize(1) == 0 % ダイアログをキャンセルしたらエラーを表示させる
   error('キャンセルされました')
else
   [a, b] = deal(answer{:})
   c = str2num(a)
   whos a b c;
end;

入力した内容は、変数 a と b に保存されます。

入力がなにもなかった場合に使用するデフォルトの値を指定しておくと便利です。

ダイアログのキャンセルボタンが押されたときは、プログラムの動作を停止させるなどの措置が必要です。

最後に whos を実行していますが、a, b, c の変数の型に注目してください。

deal で代入した値は文字配列(char)なので、数字として使用することができません。

数字として使用するには、str2num などの関数が必要になります。