How do I rename a variable, as it changes in a Loop
18 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have .mat file. and first I load my variables (Data_1,Data_2....Data_60) using
for i=1:60
load(['matfiles/Data_',num2str(i),'.mat']);
end
I want to use a loop to write to a spreadsheet instead of writing this 60 times. so I do this
for i=1:60
xlwrite('saved_file.xls',Data_1, sheetName,'B3') // Data_1 is one of the variable loaded above.Needs to change to Data_2 and so on.
end
now the question is I want to dynamically change the name in Data_1 every iteration using the loaded files. How can I do this.
1 commentaire
Stephen23
le 19 Oct 2018
"I want to dynamically change the name in Data_1 every iteration using the loaded files. How can I do this."
Do NOT do this! Magically accessing/defining variable names is one way that beginners force themselves into writing slow, complex, buggy code. Read this to know why:
A much simpler and more efficient solution is to load the data into an output variable (which you should always be doing anyway, and then use struct2cell. Then your task is easy.
Réponse acceptée
Stephen23
le 19 Oct 2018
Modifié(e) : Stephen23
le 19 Oct 2018
This is easy, as long as there is only one variable loaded from each .mat file:
for k = 1:60
F = sprintf('Data%d.mat',k);
P = fullfile('matfiles',F);
S = load(F);
C = struct2cell(S);
N = sprintf('sheet%d',k);
xlswrite('saved_file.xls',C{1},N)
end
Plus de réponses (1)
Voir également
Catégories
En savoir plus sur Spreadsheets dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!