Change struct property values in a class
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi, I have a problem with using a struct as property of a value class. It seems I cannot change the values of fields (or add new fields).
The simplest example is as follows:
classdef testclass
properties
struct_prop=struct;
end
methods
function obj = change_struct_prop(obj, val)
obj.struct_prop.field1 = val;
end
end
end
Trying to change the struct_prop doesn't work:
>> a=testclass;
>> a.change_struct_prop(2);
>> a.struct_prop
ans =
field1: []
>>
Is there any way to manipulate a class property that is a struct (without having to define a separate class for it)? Defining the struct_prop fields in the initialisation function didn't help either.
Thanks a lot,
Olf
0 Commenti
Risposta accettata
per isakson
il 28 Ott 2014
Modificato: per isakson
il 29 Ott 2014
Replace
classdef testclass
by
classdef testclass < handle
 
In response to the comment
If a value class, replace
>> a.change_struct_prop(2);
by
>> a = a.change_struct_prop(2);
and read the help on the comparison of value and handle classes
2 Commenti
Più risposte (1)
Vedere anche
Categorie
Scopri di più su Scope Variables and Generate Names in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!