Invalid default value for property error in class properties

조회 수: 24 (최근 30일)
NoYeah
NoYeah 2020년 4월 24일
댓글: NoYeah 2020년 4월 24일
Greeting
I made a class and run dthe code in .m file
classdef myclass
properties (Constant)
a=physconst('LightSpeed');
b=a/2
end
end
it occurs error and says
Invalid default value for property 'b' in 'myclass':
Unrecognized function or variable 'a'.
physconst("LightSpeed") is a function in addon which name is 'Phased Array System Toolbox'
and its version is 4.3
a=physconst('LightSpeed')
b=a/2
I put thosdde two lines in command window
and it works fine...
so I have removed constant and tried to initialize them with class constructor
classdef myclass
properties
a;
b;
end
methods
function obj=myclass(obj)
a=physconst('LightSpeed');
b=a/2;
end
end
end
but the same error occured
I want to initialize my class property value with addon function but it have bring out error
How to deal with this error?

채택된 답변

per isakson
per isakson 2020년 4월 24일
편집: per isakson 2020년 4월 24일
In the properties block one must refer to a as MyClass.a when Constant.
>> mc = MyClass
mc =
MyClass with properties:
a: 299792458
b: 149896229
>> which physconst -all
C:\Program Files\MATLAB\R2018b\toolbox\shared\siglib\physconst.m
>>
where
classdef MyClass
properties (Constant)
a = physconst('LightSpeed');
b = MyClass.a/2;
end
end
In your second class definition the constructor
function obj=myclass(obj)
a=physconst('LightSpeed');
b=a/2;
end
shall be
function obj=myclass()
obj.a = physconst('LightSpeed');
obj.b = obj.a /2;
end

추가 답변 (0개)

카테고리

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by