1

matlab スクリプトで変数名を持つ構造体を作成したいと考えています。アイデアは、ユーザーが入力した入力文字列の一部を抽出し、この名前で構造を作成することです。例えば:

CompleteCaseName = input('s');
USER WRITES '2013-06-12_test001_blabla';  
CompleteCaseName = '2013-06-12_test001_blabla'
casename(12:18) = struct('x','y','z');

この例では、casename(12:18)からtest001という結果が得られます。

これにより、各ケースの結果を連続してインポートすることで、2 つのケースを簡単に比較できるようになります。たとえば、次のように書くことができます。

plot(test001.x,test001.y,test002.x,test002.y);

問題は、行casename(12:18) = struct('x','y','z'); です。文字列を構造体に変更するため、Matlab では無効です。私が構造体で見つけたすべての例は、次のような定義に基づいています

S = struct('x','y','z');

また、文字列に基づいてSの動的な名前を作成する方法が見つかりません。

誰かが私が書いていることを理解してくれることを願っています:) FAQとGoogleでチェックしましたが、同じ問題を見つけることができませんでした.

4

3 に答える 3

-2

eval を使用:

eval(sprintf('%s = struct(''x'',''y'',''z'');',casename(12:18)));

編集: 申し訳ありませんが、sprintf を忘れていました。

于 2013-06-12T09:51:21.190 に答える