Effacer les filtres
Effacer les filtres

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

13 vues (au cours des 30 derniers jours)
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?

Réponse acceptée

Paul Hoffrichter
Paul Hoffrichter le 11 Déc 2020
Modifié(e) : Paul Hoffrichter le 11 Déc 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 commentaires
Etienne Lebard
Etienne Lebard le 11 Déc 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
Paul Hoffrichter
Paul Hoffrichter le 11 Déc 2020
Glad to have helped.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Data Type Identification dans Help Center et File Exchange

Produits


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by