How do I set a class property?

2 ビュー (過去 30 日間)
Igor Arkhandeev
Igor Arkhandeev 2021 年 1 月 26 日
回答済み: Steven Lord 2021 年 1 月 26 日
Good afternoon! I'm bad at object-oriented and I need some advice. The situation is as follows: in one part of the code, I calculate the integer variable var. Then I want this variable to be declared as the default property in the class. For example,
var = a * b;
...
classdef vector
properties
v = var;
end
methods
%%
end
end
How can I implement this?
  4 件のコメント
Igor Arkhandeev
Igor Arkhandeev 2021 年 1 月 26 日
I understand how to do this through the constructor. The thing is, I don't want to pass a variable to the input of a function every time. My code is complex and consists of a large number of nested functions. I want to avoid using global, so I need to pass my variable every time. This variable is only used in the class.

サインインしてコメントする。

採用された回答

per isakson
per isakson 2021 年 1 月 26 日
編集済み: per isakson 2021 年 1 月 26 日
This might help as a start
>> vec = vector;
>> vec.v1
ans =
120
>>
where
classdef vector
properties
v1 = var1_calculation;
v2 = vector.var2_calculation;
end
methods ( Static = true )
function var = var2_calculation()
a = -10;
b = 12;
var = a*b;
end
end
end
and
function var = var1_calculation()
a = 10;
b = 12;
var = a*b;
end
Then the question is where do a and b come from
  4 件のコメント
Igor Arkhandeev
Igor Arkhandeev 2021 年 1 月 26 日
Okay, thank you so much for your response and for your time. I should have asked that. Now I should rebuild the code in a more convenient way.

サインインしてコメントする。

その他の回答 (1 件)

Steven Lord
Steven Lord 2021 年 1 月 26 日
If you want to initialize the value once and have that be unchangeable for the rest of the lifetime of the object, make it a Constant property.

Community Treasure Hunt

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

Start Hunting!

Translated by