データから得られる変数のリストに基づいてクラスを作成しました。このクラスのオブジェクト内にすべてのデータを配置する関数を作成しました。
変数のリストが大きくなるにつれて、クラスとロード関数を調整しなければなりません。クラスの変更に対して負荷関数を堅牢にする方法を見つけようとしています。
クラスファイルのコード:
classdef CoolClass
properties
prop_a
prop_b
prop_c
end
end
このデータをオブジェクトにロードするために私が書いた関数:
function [ object_name ] = loadCoolClass (data_file_name)
load(data_file_name)
% this loads the variabels:
% prop_a = 1, prop_b = 2, prop_c = 3, prop_d = 4
object_name = CoolClass;
object_name.prop_a = prop_a;
object_name.prop_b = prop_b;
object_name.prop_c = prop_c;
end
今私が欲しいのは、変数prop_d
をclassdefファイルに追加すると、すぐにロードファイルにもロードされるということです。このようなもの:
function [ object_name ] = loadCoolClass (data_file_name)
load(data_file_name)
% this loads the variabels:
% prop_a = 1, prop_b = 2, prop_c = 3, prop_d = 4
object_name = CoolClass
cool_properties = properties(CoolClass)
for i = 1:size(cool_properties,2)
object_name.cool_property(i) = cool_property(i)
end
end
上記のループが有効なコードではないことはわかっていますが、つまり、すべてのプロパティをチェックして、その名前の変数があるかどうかを確認し、それをオブジェクトに配置します。
文字列の内容にちなんで名付けられた変数の値をロードするための入力として、文字列を保持する変数を使用する方法はmatlabにありますか?
これは、'=' 記号の前にコンテンツを命名することで可能ですか? '=' 記号の後に変数を参照することでこれは可能ですか?