Matlab

MATLABで変数名を文字列(char型)で取得する

 

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を使った数値計算を自動化させて加速させるには、非常に強力なツールになるのではないかと思っています。ぜひ使ってみてください。

-Matlab

© 2024 Gohey Blog