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

조회 수: 8 (최근 30일)
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?

채택된 답변

Paul Hoffrichter
Paul Hoffrichter 2020년 12월 11일
편집: Paul Hoffrichter 2020년 12월 11일
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
Etienne Lebard
Etienne Lebard 2020년 12월 11일
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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Structures에 대해 자세히 알아보기

태그

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by