Matlab - Class : how to declare an internal function returning a value
17 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Yoshua CELNIKIER
el 16 de Dic. de 2022
Comentada: Yoshua CELNIKIER
el 17 de Dic. de 2022
Hi all, I am trying to declare an internal function (findScenarioNumber) in a class. This function is supposed to output a number. But I have an error in the line "scenarioNumber = findScenarioNumber(splitDataFolder);" where I'm calling the function: Undefined function 'findScenarioNumber' for input arguments of type 'cell'. Searching but cannot find the good syntax to do that. Anyone can help ?
Here is my code :
classdef SignalStructureProperty < handle
properties
signals
end
methods
function obj = createSignalTopLevelStructure(obj,dataFolder)
splitDataFolder = split(dataFolder,'\');
scenarioNumber = findScenarioNumber(splitDataFolder);
obj.signals.metaData.scenarioNumber = scenarioNumber;
end
function scenarioNumber = findScenarioNumber(splitDataFolder)
scenarioNumber = NaN;
if(~isempty(splitDataFolder))
for i=1:length(splitDataFolder)
if(contains(splitDataFolder{i},'SCN'))
scenarioNumber = str2double(extractAfter(splitDataFolder{i},"SCN"));
end
end
end
end
end
end
0 comentarios
Respuesta aceptada
Jon
el 16 de Dic. de 2022
Editada: Jon
el 16 de Dic. de 2022
You must tell MATLAB that findScenarioNumber is a member function of the class you are currently in
scenarioNumber = obj.findScenarioNumber(splitDataFolder)
You must use obj as the first argument
function scenarioNumber = findScenarioNumber(obj,splitDataFolder)
Más respuestas (1)
Steven Lord
el 16 de Dic. de 2022
I would make findScenarioNumber a class-related function rather than a method of the class. See this documentation page for an example of this technique.
Ver también
Categorías
Más información sobre Subclass Definition en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!