我基于来自数据的变量列表创建了一个类。我做了一个函数,将所有数据放在这个类的一个对象中。
随着变量列表的增长,我不得不不断调整类和加载函数。我正在尝试找到一种方法,使我的加载功能对类中的更改具有鲁棒性。
类文件的代码:
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 中有没有办法使用保存字符串的变量作为输入来加载以字符串内容命名的变量的值?
这是否可能在“=”符号之前命名内容在“=”符号之后引用变量是否可能