Is there a way to access a struct object's reference (handle) in MATLAB?

22 visualizaciones (últimos 30 días)
Let's say I have a struct object A with some fields :
A.a=1;
I have an another struct objetc B with some fields, one of them being the value of A :
B.b=A;
My issue is that when I change fields of A, it won't affect B.b :
> A.a=2
A =
struct with fields:
a: 2
>> B.b
ans =
struct with fields:
a: 1
Is there a "built-in" way to tell MATLAB that I want B.b to be not a copy of value of A, but a reference to A, so that when I change A it reflects when I access B.b?
I mean, besides defining and using classes which inherit from handle?

Respuesta aceptada

Paul Hoffrichter
Paul Hoffrichter el 11 de Dic. de 2020
Editada: Paul Hoffrichter el 11 de Dic. de 2020
This may be close to what you are looking for. Define a classA.m
classdef classA < handle
properties
a
end
methods
function obj = classA(a)
obj.a = a;
end
end
end
Run the following:
>> A = classA(1)
A =
classA with properties:
a: 1
>> A.a
ans =
1
>> B.b = A;
>> B.b
ans =
classA with properties:
a: 1
>> A.a = 2
A =
classA with properties:
a: 2
>> B.b
ans =
classA with properties:
a: 2
>> B.b.a
ans =
2
  2 comentarios
Etienne Lebard
Etienne Lebard el 11 de Dic. de 2020
Thanks! :)
I thought maybe there was a way to access the handle of a struct object, but that solution does what I need it to do

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Structures en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by