Dear all,
I have a function that needs to treat data coming from a structure, and I want to have several inputs indicating which branch of the structure is the one to be treated:
function total = totalCampus(campus,building,year,var)
total=getfield(campus,(year),(building),(var))
end
This is just the first line of the function, where I want to call the specific column of the table in the structure, using dynamic fieldnames, but I can't manage. Any clue?
best regards,
Mario

 Réponse acceptée

Adam
Adam le 2 Mai 2019
total = campus.( building ).( year ).( var );
should work fine, assuming campus is your struct and that is a branch of the struct.

3 commentaires

Mario Prinetti
Mario Prinetti le 6 Mai 2019
function total = totalCampus(campus,year,type,var)
switch campus
case 1
building={'sabatini','quevedo','betancourt','biblioAud','benet'};
total=zeros(34492,length(building));
for n=1:length(building)
total(:,n)=leganes.(year).building{n}.(type).(var);
end
total=nansum(total(total>0),'all');
This is my actual code, used to add up all values of the selected variable (it ahhas a second case for another campus). The issue is it doesn't seem to read the year correctly (the name of the structure branch is a2017 for example). once I type tot=totalCampus(1,a2017,total,PotenciaActivaTotal_kW); it tells me that the function or variable a2017 is undefined
Adam
Adam le 7 Mai 2019
Is it defined?
Stephen23
Stephen23 le 7 Mai 2019
Modifié(e) : Stephen23 le 7 Mai 2019
"once I type tot=totalCampus(1,a2017,total,PotenciaActivaTotal_kW); it tells me that the function or variable a2017 is undefined "
You are typing those inputs without single quotes, which tells MATLAB that they are variable/function/class/etc. names. You need to use single quotes to define character vectors.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Deep Learning Toolbox dans Centre d'aide et File Exchange

Produits

Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by