For loop to write data to excel
13 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a number of matrix (e.g. n=10) dw1,dw2....dw10. they are obtained through equation dw=-dudx-dvdy. I want to use a for loop to write all these matrix to an excel. I did these
for i = 1:n;
dwname = sprintf('dw%d=-dudx%d-dvdy%d;',[i,i,i]);
eval(dwname);
xlswrite('name.xls',dwname,i,'a1:a600');
end
From this loop i got all the dwi. but because dwname is a char, so the data wrote to excel is not the matrix dwi not only a string . I tried to transfer the char name to variable, but didnt make it.
Is there anyone who can help me with this?
0 commentaires
Réponse acceptée
Image Analyst
le 17 Juin 2012
dwname needs to be a cell, not a character array. Put it inside braces like this {dwname}. Or better yet do it this way where I first create the cell array and then write it out just once at the end instead of in every iteration:
% Create a 1 by n cell array called dwname.
n = 5;
for i = 1:n
dwname{i} = {sprintf('dw%d=-dudx%d-dvdy%d;',[i,i,i])}
end
% Write out the cell array all in one shot.
sheetNumber = 1;
range = 'a1';
xlswrite('name.xls', dwname, sheetNumber, range);
5 commentaires
Image Analyst
le 18 Juin 2012
I don't have your data files, or Excel on this computer, so I can't test anything. All I can say is to start with my code and then look at the example in the help for xlswrite to learn how you can construct a cell array that has both numbers and strings. One cell of the cell array can contain either a string (multiple characters), or a single number of an array. The cell cannot contain the entire array if I remember correctly - you have to put each element into its own cell.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!