良い一日のMATLABのプロ、MATLAB:構造体の保存値
私が(単一の値)の長いリストを持って実行するすべてのループの配列に格納する必要があり、私のワークスペース内の変数。
ここでは簡単な例があります:ワークスペース内 変数:
a = 1;
b = 2.2;
c = 3.4;
d = [0.5 0.7 1 1.2 1.5];
e = [-15 -10 -5 0 5 10 15 20];
serial = {'WTZ00151'};
model = {'336F'};
NameList = {'a';'serial';'model'};
1)ここで、私はData
構造にのみ単一の値の変数を保存しています、しかし、私が何をしたいのですがどのようなすべてのためのものですループ、Data
構造の配列に単一の値を保存します。私はループでこれを実行する場合
varList = who;
Data = struct;
fields = fieldnames(Data, '-full');
fieldSizes = structfun(@(field) length(field),Data);
% removing arrays from structure
for lst = 1:length(fieldSizes)
if fieldSizes(lst) > 1
Data = rmfield(Data,fields(lst));
end
end
Data =
Data: [1x1 struct]
a: 1
b: 2.2000
c: 3.4000
index: 10
model: {'336F'}
serial: {'WTZ00151'}
ので、for i = 1:5
、Data
は次のようになります。for
ループをコーディングする方法について
Data =
Data: [1x1 struct]
a: [1 1 1 1 1]
b: [1x5 double]
c: [1x5 double]
index: [10 10 10 10 10]
model: {1x5 cell}
serial: {1x5 cell}
任意のアイデア?私が代わりに)構造にすべての変数を保存するためにwho
を使用して(と、不要なをフィルタリングで、収納ニーズ変数の長いリストを持っているワークスペース&にあまりにも多くの変数があるので
2)、どのように私ができます格納する必要のある変数名(テキストファイルからインポートしたもの:NameList
)のリストを使用しますか? NameListの変数名を使用しても構造体の値は呼び出されません。感謝
優れた応答。ご助力ありがとうございます。 – Bensa