Import data from file inside "classdef properties"

Hi all,
I'd like to understand how to do something that i find really intriguing.
I'm talking about importing data from an external file (Excel) and then assigning specific fields' values (from that file) to the variables defined within the "properties" of a "classdef" in my code. These variables are useful in different parts of the code, so that if I change the external file I can change the properties mentioned, which are automatically called inside the code itself.
I've already defined the parser for the external file, but I do not know how to integrate it into the classdef.
Your help would be greatly appreciated.
Thanks!

5 comentarios

Jeff Miller
Jeff Miller el 13 de Mzo. de 2024
Call your parser from the constructor when you create an object of the class? Maybe pass the file name to the constructor as an argument so that different objects will have properties taken from different Excel files...
It depends: is it necessary that you be able to change the file while there are existing objects of the class? (If so then should the new properties affect the existing objects ?)
slow_hand
slow_hand el 13 de Mzo. de 2024
For Jeff: I'm trying to parse the file outside of the classdef and then pass the file to it, but it still gives me errors ...
For Walter: Ideally, each time I run the code I need to extract data from the Excel and then change the properties in the classdef...but I do not know how...
Steven Lord
Steven Lord el 13 de Mzo. de 2024
Ideally, each time I run the code
What do you mean by "the code"?
  • The class constructor?
  • Each class method?
  • Each file that accesses a property of the object?
What's the purpose of these properties? How do they get used in your workflow? Knowing a little more about your planned usage may help understand if there's an alternate approach that may be more efficient than your current planned approach. This may help avoid the XY problem.
slow_hand
slow_hand el 15 de Mzo. de 2024
To Steven: For "code" I mean exactly each file that accesses a property of the object.
For now, in the classdef, I've defined a function in methods that parses the Excel file and extracts certain properties/value/fields.
Then, in the properties section of the class, I recall these properties by writing:
propertyName = classdefName.functionName.propertyName
Where propertyName is the property extracted from the Excel, classdefName is the name assigned to the classdef and functionName is the function mentioned before.
It seems to work, however do you think it is a valid approach??
Thanks.

Iniciar sesión para comentar.

 Respuesta aceptada

SAI SRUJAN
SAI SRUJAN el 28 de Mzo. de 2024
Hi,
I understand that you are facing an issue with importing data from a file to inside of 'classdef properties'.
This can be done by using the class constructor or a dedicated method to load the data when an instance of the class is created or when needed.
Below is an example of how you might structure your class to include importing data from an Excel file and assigning specific fields' values to the class properties.
classdef MyClass
properties
Property1
Property2
end
methods
function obj = MyClass(excelFilePath)
if nargin > 0
obj = obj.loadExcelData(excelFilePath);
end
end
function obj = loadExcelData(obj, excelFilePath)
data = readtable(excelFilePath);
obj.Property1 = data.Field1;
obj.Property2 = data.Field2;
end
end
end
I hope this helps!

1 comentario

slow_hand
slow_hand el 30 de Mzo. de 2024
Thank you SAI, this is exactly what I was meaning in my answer above!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Data Type Identification en Centro de ayuda y File Exchange.

Productos

Preguntada:

el 12 de Mzo. de 2024

Comentada:

el 30 de Mzo. de 2024

Community Treasure Hunt

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

Start Hunting!

Translated by