what does a = T(m:m, 'label'); mean?

1 view (last 30 days)
Hannah on 17 Aug 2021
Commented: Hannah on 17 Aug 2021
For each iteration, shown in the code below, I want to read the specified file starting from line 12; from line 12, I want to read one line per iteration. I will have 12 iterations in total represented by m., i.e. the first iteration, I want to read one line down from line 12, the second iteration I want to read the second line down from line 12 and so on until the last iteration where I read the 12th line down from line 12. 'H_Ghhor' and 'H_Gkhor' are the header labels for the columns I want to read.
for m=1:length(months) %loop 12 times for the 12 months
for o=1:length(orientation) %loop 2 times for south and east
for t=1:length(tilt) %loop 10 times for the 10 tilting possibilities
for r = 1:length(row) %loop 3 times for the 3 rows
if o==1 %if south, get the file with an 'S' in the file name
tempFileName = sprintf('t%d_r%d_S-mon.txt',t,r);
elseif o==2 %if east, get the file with an 'E' in the file name
tempFileName = sprintf('t%d_r%d_E-mon.txt',t,r);
File_from_Meteo = append(pathResults, tempFileName); %Combine path and file name
T = readtable(File_from_Meteo, 'Headerlines', 12); %table starts at line 12
if t==1
subset = T(m:m, 'H_Ghhor');
subset = T(m:m,'H_Gkhor');
Res_irr=table2array(subset); %the value of irr for a given m,o,r and t
My question is:
what does the line
subset = T(m:m, 'H_Ghhor');
exactly mean, and does it fulfil what I described above?

Accepted Answer

Stephen on 17 Aug 2021
Edited: Stephen on 17 Aug 2021
"what does a = T(m:m, 'label'); mean?"
It refers to row m of variable/column "label" of the table T, returning a table:
The colon is not required. It seems that the author of that code also did not realize that they can access the data directly using curly braces (thus avoiding returning a table which then requires the superfluous TABLE2ARRAY):
subset = T{m,'H_Ghhor'};
% ^ ^ curly braces!
The robust, recommended, and OS-independent alternative to APPEND is to use FULLFILE.
"does it fulfil what I described above?"
It seems to do something like that. Usually it is more efficient to import data before the loop.
  1 Comment
Hannah on 17 Aug 2021
Thank you for the explanation. I removed the colon and implemented the curly braces, so now my code is much better. :D

Sign in to comment.

More Answers (0)


Community Treasure Hunt

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

Start Hunting!