How can I update the following variable?
a = 1; b = a + 2;
then I changed a = 2, but b is still 3.
How can I change or update b without executing b = a + 2?
If Matlab supports pointer in C, I guess the above problem is solved easily.

1 commentaire

John D'Errico
John D'Errico le 13 Juin 2017
But you are using MATLAB, not C. No pointers available.

Connectez-vous pour commenter.

Réponses (2)

Matt J
Matt J le 13 Juin 2017
Modifié(e) : Matt J le 13 Juin 2017

0 votes

Even in C, I think a re-calculation would have to occur somewhere in the code to get a revised value. However, the kind of auto-updating I believe you're looking for is something a dependent class property can do:
classdef myclass
properties
a
end
properties (Dependent)
b
end
methods
function val=get.b(obj)
val=obj.a+2;
end
end
end
Now you can do things like this,
>> obj=myclass;
>> obj.a=1; obj.b
ans =
3
>> obj.a=3; obj.b
ans =
5

Catégories

En savoir plus sur 변수 dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!