adding property dynamically in the class
18 次查看(过去 30 天)
显示 更早的评论
I have a class,
classdef data < dynamicprops
properties
result1 = []
result2 = []
end
end
Now I need to add dynamically many properites to the class. For example
reult 3, result 4, result 5 etc
I tried using data.('result3') = [] like how we add a field in the strcture. But i am getting the error.
how can i do this?
Thanks a lot
2 个评论
Adam
2017-2-23
Why wouldn't you just use a single property
results
as an array of results that you can index into?
Stephen23
2017-2-23
@Gopalakrishnan venkatesan: as Adam already said, using an array (possible cell array) would be a much better solution. You should really consider using the simpler solution rather than making this complicated with dynamic properties.
采纳的回答
Guillaume
2017-2-23
A rule in any programming language: if you*re numbering variables, you're doing it wrong. These obviously related variables should all be just one variable, a container for whatever is in each of these variables. In matlab, it's matrix or cell array or table.
Assuming your results are going to be matrices of varying size, then:
classdef data < handle
properties
results = {[], []}; %two empty results in the results container
end
methods
function addresult(this, result)
this.results = [this.results, {result}];
end
function setnthresult(this, n, result)
validateattributes(n, {'numeric'}, {'integer', 'positive', '<=', numel(this.results)});
this.results{n} = result;
end
end
end
would make your life much easier.
If you really insist on using dynamic properties, then this page explains exactly how to do it, with example.
0 个评论
更多回答(1 个)
Adam
2017-2-23
编辑:Adam
2017-2-23
doc dynamicprops
gives details on the addprops function which I would assume you need to use. I have never wanted to do any dynamic properties on my own classes as it seems a bit of a suspicious design premise, but how did you manage to come across knowing you need to use dynamicprops yet not find addprops?!
2 个评论
Arun Aiyer
2022-7-16
If you want to use inspect function to create a dynamic settings table related to hardware for example.
The inspect function creates a dynamic interface for the object handle properties, which needs to be changed. The function that creates the dynamic props is to generate these settings objects.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Construct and Work with Object Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!