matlabで複数の変数を効率的に定義する方法はありますか? 私が見つけたものはすべて、私が探しているものとはまったく異なります。状況は次のとおりです。
parstrs = {'a','b','c'};
parvals = [1 2 3];
実際には次のことを行う効率的なコマンドが必要です。
parstrs = parvals;
その結果、数値 1 は変数a
に格納され、2 は に格納されb
、3 は に格納されますc
。
私はセルまたは構造体でこれを行うことにオープンです。
助言がありますか?
より明確にする: 後述するように、カーブ フィッティングで使用する変数名のリストの長さを気にしないコードを書きたいと思います。私が発見した最善の方法は、次のような構造を使用することです。
parstrs = {'a','b','c'};
parvals = num2cell([1 2 3]);
partmp = {parstrs{:};parvals{:}};
pars = struct(partmp{:});
これの問題は、pars 構造を同じ方法で編集できないことです。あれは、
pars = setfield(pars,partmp{:});
次のエラーがスローされます。
Error using setfield (line 48)
Inputs must be either cell arrays or strings.