Linking fields of a structure
2 次查看(过去 30 天)
显示 更早的评论
Hello,
I have a scenario where two fields of a structure have a relationship. My question is, how to change one field automatically, if the other is changed manually?
Say, The structure is Amp with fields a,b,c,d. Now, Amp.a=Amp.b+10. My question is, how to update Amp.a, when I change Amp.b?
I know that it is a redundant field and I can use "Amp.b+10" wherever required. But I have multiple blocks with such a need and the readabilty of the equations is affected.
Note that I am using these variables in Simulink blocks and not directly in Matlab code. So, I should be able to save the workspace as per my requirement prior to simulations.
Any help is much appreciated!
0 个评论
采纳的回答
Matt J
2014-8-19
You would need to write your own class and use that instead of the structure. But once you do, it's the kind of thing Dependent class properties do very readily.
2 个评论
Matt J
2014-8-19
编辑:Matt J
2014-8-19
As an illustration, the class down on that bottom lets you define an object for which S.b=S.a+10 always. Here are examples of its usage:
>> S=myclass; S.a=1:3; S.b
ans =
11 12 13
>> S.a(2)=5; S.b(2)
ans =
15
classdef myclass
properties
a
end
properties (Dependent=true,SetAccess=private)
b
end
methods
function val=get.b(obj)
val=obj.a+10;
end
end
end
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Simulink Functions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!