Import data as a cell array in a script

22 vues (au cours des 30 derniers jours)
Zynk
Zynk le 6 Fév 2015
I need to import data as a cell array to Matlab for many files and later perform some operations to them. Is there any way I can import the data in a script to do it automatically instead of manually?
What I do manually is:
-Home > Import Data
-Choose .txt file
-As a cell array, 2 columns as text.
-Column delimiters: comma.
Thank you

Réponse acceptée

Sean de Wolski
Sean de Wolski le 9 Fév 2015
Modifié(e) : Sean de Wolski le 9 Fév 2015
Zynk, in the import tool, after you make your selections, there's an option to "Generate function". You could then use this function on all of your files by looping over the filenames.
  1 commentaire
Zynk
Zynk le 9 Fév 2015
Thank you, I hadn't noticed that.

Connectez-vous pour commenter.

Plus de réponses (2)

Star Strider
Star Strider le 6 Fév 2015
You do not give the actual file format or the file itself, so I cannot provide exact code. I would use the textscan function.
A possible (untested) way to code it would be:
fidi = fopen( filename );
data = textscan(fidi, '%f%f', 'Delimiter',',');
Be sure to explore the other name-value pair arguments if necessary.
  3 commentaires
Star Strider
Star Strider le 9 Fév 2015
The ‘table’ functions are a more efficient solution, but they were introduced with R2013a, and not everyone has access to them. Unless I know the version people are using, I go with the most generic solution possible.
Zynk
Zynk le 9 Fév 2015
Yes, you are right.

Connectez-vous pour commenter.


Zynk
Zynk le 9 Fév 2015
My final objective was to get a structure-type variable, so I found this solution:
file= readtable('file.txt','Delimiter',',');
result=table2struct(file);

Community Treasure Hunt

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

Start Hunting!

Translated by