MATLABで変数名を文字列で取得するには
変数名を文字列(char型)で取得するには、inputname関数を使います。 こちらの記事は、MATLAB Answers "How can I get the name of a MATLAB variable as a string?" を引用しています。
自動的に操作を行うようなコードを記述したいときに何かと使えるのではないかと思います。
変数名を文字列で取得する関数例
次の関数を使えば、文字列で変数名を取得できます。
getVarName.m
function out = getVarName(var)
out = inputname(1);
end
getVarName関数の引数
引数のvarを直接使っていないため、MATLABのエディタ上でワーニングが出るかもしれませんが、問題なく動作します。
inputname関数の引数
inputname関数の引数の1は、"1つ目の引数”の意味です。引数が複数ある場合、2を指定すれば2つ目の引数名、3を指定すれば3つ目の引数名を返します。
使用例 / 出力とデータ型
inputnameの出力をそのまま扱うとchar型になるようです。string(inputname(1))とすれば、string型でも受け取れます。
main.m
gohey = 123;
name = getVarName(gohey);
name % 変数の値を確認
>> ans='gohey'
class(gohey) % 変数の型を確認
>> ans='double'
class(name) % 変数の型を確認
>> ans='char'
コードは簡単ですが、MATLABを使った数値計算を自動化させて加速させるには、非常に強力なツールになるのではないかと思っています。ぜひ使ってみてください。