csvwrite with a double

3 vues (au cours des 30 derniers jours)
William
William le 17 Juin 2011
Hello I am having a great deal of difficulty writing a 512 x 1 cell array of type double in a .MAT file to excel I tried this:
exportlist = get(handles.listbox2,'string')
%we need to change the directory to the chosen output and after we have %re-loaded the .mat file into the workspace convert the files %The evalin evaluates the expression in 'base' or workspace
for a = 1:length(exportlist) outloc =get(handles.CSV_file, 'string'); cdstring = ['cd(''' outloc ''')']; eval(cdstring); csvwrite([exportlist{a},'.csv'],evalin('base',cell2mat(exportlist{a})))
end
No dice. The error I get is this:
??? Cell contents reference from a non-cell array object.
Error in ==> cell2mat at 44 cellclass = class(c{1});
Error in ==> MAT_to_Csv>convert_button_Callback at 319 csvwrite([exportlist{a},'.csv'],evalin('base',cell2mat(exportlist{a})))
Thanks
Bill

Réponse acceptée

Fangjun Jiang
Fangjun Jiang le 17 Juin 2011
No. Your line probably should be:
csvwrite([exportlist{a},'.csv'],evalin('base',exportlist{a}))
Read my answer to your other question. I think you should really consider the dynamic field names like Vars.(exportlist{a}) to avoid using eval().
Your eval(cdstring) could be replaced by cd(outloc)
  1 commentaire
Walter Roberson
Walter Roberson le 18 Juin 2011
Yes, yes, dynamic field names! And pass the structure in as a parameter or work with in via handles, so that you do not need to use evalin()

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 18 Juin 2011
I would also add the precautionary measure of using
exportlist = cellstr(get(handles.listbox2,'string'));

Catégories

En savoir plus sur Cell Arrays 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!

Translated by