How can I do dynamic calculation?
Afficher commentaires plus anciens
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
le 13 Juin 2017
But you are using MATLAB, not C. No pointers available.
Réponses (2)
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
Walter Roberson
le 13 Juin 2017
syms a
b = a + 2
a = 1
subs(b)
a = 2
subs(b)
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!