2012-02-12 28 views
1

私は、変数名MetabMapStringを関数spectroscopy()に渡しています。 MetabMapStringは、呼び出すフィールドの名前です。しかし、Matlabは、フィールド名MetabMapStringがないということを返すため、フィールドの名前がMetabMapStringであるとThicしているようです。私はいくつかのコードを含んでいます。これを動作させる方法はありますか?MatlabのStructでフィールド名を呼び出す?

n = length(spect.(MetabMapString)); 

動作するはずです:

function spectroscopy(MetabMapString) 
    spect = importdata(spectLCMI); 
    n = length(spect.MetabMapString); 

    Row = spect.Row; 
    Col = spect.Col; 
    spectOrig = spect.MetabMapString; 

    ... 

end 

は、ここでそれがあるべきエラー

??? Reference to non-existent field 'MetabMapString'. 

Error in ==> SpectDraw>spectroscopy at 1165 
n = length(spect.MetabMapString); 
+0

'spectLCMI'は何ですか?変数?構造体? –

+0

データが入っているCSVファイルです。各フィールドには名前と、その名前に関連付けられたデータがあります。 –

答えて

3

です。同じあなたは構造体またはMATLABクラスのフィールド名として、またはクラスのメソッド名などの文字列を含む変数を使用している他のすべての場所で:

spectOrig = spect.(MetabMapString); 
関連する問題