Change struct property values in a class
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Olf
el 28 de Oct. de 2014
Respondida: Olf
el 6 de Nov. de 2014
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 comentarios
Respuesta aceptada
per isakson
el 28 de Oct. de 2014
Editada: per isakson
el 29 de Oct. de 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 comentarios
Más respuestas (1)
Ver también
Categorías
Más información sobre Scope Variables and Generate Names en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!