The value returned from getNumInputsImpl method must be a constant value. But the Value is immutable
Mostrar comentarios más antiguos
Hi,
i get the following error when generating code:
The value returned from getNumInputsImpl method must be a constant value.
Properties used in calculating this value must be Nontunable.
The error occurred for MATLAB System block 'SiL_LUT_1D/MATLAB System1'.
The method:
function num = getNumInputsImpl(obj)
num = obj.Approx.numInputs + 1; % input
end
The propertie numInputs of Approx(ValueClass):
properties (SetAccess = immutable)
numInputs = 0;
end
And obj.Approx is a nontunable Property of the System block. So for my understanding, this value can't change in anyway and should be interpreted as a constant value. Any suggestion on a fix or workaround?
1 comentario
Thomas Kucharczyk
el 26 de Feb. de 2020
Respuestas (2)
Thomas Kucharczyk
el 26 de Feb. de 2020
Honglei Chen
el 26 de Feb. de 2020
You said numInputs is nontunable, did you try to use Nontunable in the property defintion? Like
properties (Nontunable)
numInputs = 0
end
HTH
13 comentarios
Thomas Kucharczyk
el 27 de Feb. de 2020
Editada: Thomas Kucharczyk
el 27 de Feb. de 2020
Thomas Kucharczyk
el 27 de Feb. de 2020
Honglei Chen
el 27 de Feb. de 2020
If it's numInputs is nontunable, then you cannot change it once the simulation starts. You can probably update it once in setupImpl.
Thomas Kucharczyk
el 27 de Feb. de 2020
Honglei Chen
el 27 de Feb. de 2020
I was trying to explain for a nontunable property, you are not supposed to change it in your method. It looks like you are using a property, Approx, to control whether a port should be rendered? If so, I'd suggest you to define Approx as a nontunable property and use that one to return the number of inputs. You probably don't need an extra numInputs property.
HTH
Thomas Kucharczyk
el 27 de Feb. de 2020
Editada: Thomas Kucharczyk
el 27 de Feb. de 2020
Honglei Chen
el 27 de Feb. de 2020
I see. You should be able to change Approx as long as the simulation has not started. I don't know the logic behind it but you shouldn't need to use listeners to control number of inputs. You can reference Approximator's properties in getNumInputsImpl too.
HTH
Thomas Kucharczyk
el 27 de Feb. de 2020
Editada: Thomas Kucharczyk
el 27 de Feb. de 2020
Thomas Kucharczyk
el 27 de Feb. de 2020
Honglei Chen
el 28 de Feb. de 2020
Hi Thomas, sorry I cannot help more without seeing the entire code. If you are willing to provide the complete code, I'd be happy to pass it to the corresponding team to investigate. Alternatively, you can contact the tech support to report the bug too.
Thomas Kucharczyk
el 2 de Mzo. de 2020
Thomas Kucharczyk
el 6 de Mzo. de 2020
Honglei Chen
el 6 de Mzo. de 2020
Good suggestion, I'll create an enhancement request for the team, thanks.
Categorías
Más información sobre ARM Cortex-A Processors en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!