Ordering the name of excel files from short to longer length
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Adi Purwandana
am 12 Sep. 2023
Kommentiert: Adi Purwandana
am 12 Sep. 2023
Hello everyone,
I have a script which split an excel file into several excel files using this code:
data = readtable('dataset.xlsx');
stations = unique(data.Station);
for i=1:numel(stations)
x = data(data.Station==stations(i), :);
writetable(x,"Sta_"+num2str(stations(i))+".xlsx");
end
FYI, each file created using such code has different lengths. For example:
Sta_1 --> 8 rows;
Sta_2 --> 3 rows;
Sta_3 --> 6 rows.
My question is... is it possible to order from the shorter length to longer length when using writable function?
So, I want the file names is ordered based on the length of the file, i.e.,
Sta_1 --> file with 3 rows;
Sta_2 --> file with 6 rows;
Sta_3 --> file with 8 rows.
Thanks
0 Kommentare
Akzeptierte Antwort
kei hin
am 12 Sep. 2023
Bearbeitet: kei hin
am 12 Sep. 2023
Check the length inside the for loop and store the sorted result in variables, then use the writetable outside the for loop.
3 Kommentare
kei hin
am 12 Sep. 2023
code like this. It may not be exactly what you need.
data = readtable('dataset.xlsx');
stations = unique(data.Station);
tmp = {};
for i=1:numel(stations)
x = data(data.Station==stations(i), :);
if isempty(x)
continue; %empty skip
end
tmp{end+1,1} = x;
[row,col] = size(x);
tmp{end,2} = row; % length, for sort
end
result = sortrows(tmp,2); % sort by length
for i=1:length(result)
writetable(result{i,1},"Sta_"+num2str(stations(i))+".xlsx");
end
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Spreadsheets finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!