MATLAB: à l'Aide de textscan et la conversion de matrice de cellules dans la matrice

J'ai un gros fichier csv (environ 1 million de lignes) avec l'option de données avec la structure suivante (contenu est modifié):

secid, date, days, delta, impl_volatility, impl_strike, impl_premium, dispersion, cp_flag, ticker, index_flag, industry_group
100000, 02/05/1986, 60, -80, 0.270556, 74.2511, 5.2415, 0.021514, C, ASC, 0, 481
100000, 03/05/1986, 30, -40, 0.251556, 74.2571, 6.2415, 0.025524, P, ASC, 0, 481

J'ai réussi à importer un fichier de test en utilisant les éléments suivants:

ftest = fopen('test.csv');
C = textscan(ftest,'%f %s %f %f %f %f %f %f %s %s %f %f','Headerlines',1,'Delimiter',',');
fclose(ftest);

Cependant, C est une matrice de cellules et de ce fait, il est plus difficile de gérer le contenu du fichier dans matlab. Il serait plus facile de l'avoir comme "régulier", array (pardonnez-moi de ne pas connaître la nomenclature correcte, j'ai juste commencé à travailler avec matlab).

Si je sortie C, j'obtiens:

Columns 1 through 6
[2x1 double]    {2x1 cell}    [2x1 double]    [2x1 double]    [2x1 double]    [2x1 double]
Columns 7 through 12
[2x1 double]    [2x1 double]    {2x1 cell}    {2x1 cell}    [2x1 double]    [2x1 double]

Donc à l'intérieur de la cellule du tableau qui est en C, il y a des tableaux et des matrices de cellules de tableaux pour les numéros et les cellules des tableaux de chaînes de caractères. Si j'essaie de vérifier élément (1,2), je dois utiliser C{1}(2) mais si je veux vérifier l'élément (2,2) - je utiliser C{2}{2}. Idéalement, je voudrais accéder à la fois à C(1,2) et C(2,2).
La question est, comment puis-je faire cela?

J'ai cherché des solutions et a trouvé cells2mat mais il ne fonctionne que si tout le contenu est numérique (je pense). J'ai trouvé cette solution: Convertir des cellules de tableau de tableaux de cellules à la matrice de matrices mais horzcat récupère une erreur, qui, je crois, peut occurr en raison du même problème.

Je vous remercie d'avance pour votre temps.

Une cellule de tableau est un tableau qui permet de stocker des valeurs de types différents. Ici vous avez une cellule de tableau qui stocke les deux colonnes de nombres et chaînes de caractères. Cette question suppose que tout ce que vous avez est des valeurs numériques, ainsi, une cellule de tableau est en effet superflu, être converti en une matrice, qui est beaucoup plus facile à manipuler. Mais qu'espérez-vous obtenir lorsque vous avez chaînes concernées?

OriginalL'auteur sasstudent | 2013-07-15