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

8 Ansichten (letzte 30 Tage)
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?

Akzeptierte Antwort

Paul Hoffrichter
Paul Hoffrichter am 11 Dez. 2020
Bearbeitet: Paul Hoffrichter am 11 Dez. 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 Kommentare
Etienne Lebard
Etienne Lebard am 11 Dez. 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Structures finden Sie in Help Center und File Exchange

Produkte


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by