Comment utiliser “csvread” lorsque le contenu du fichier ont des formats différents?
J'ai un .csv fichier et le format est indiqué ci-dessous:
de cartographie.csv
5188.40811,TMobileML
5131.40903,TMobileGregsapt
5119.40791,TMobileJonsapartment
5123.40762,TMobileRedhat
je veux la conserver dans un 4 de 2 matrice, lorsque j'ai une valeur telle que 5131.40903
(c'est un 'string' pas 'int'), je veux trouver le mappage de relation qui est TMobileGregsapt
. Mais je rencontre deux problèmes, le premier c'est que je ne peux pas utiliser csvread('mapping.csv')
, il y aura quelques erreurs:
(Je pense que le problème pourrait être 5131.40903
sera int
lorsque j'utilise csvread, mais TMobileGregsapt
est une chaîne de caractères...)
??? Error using ==> dlmread at 145
Mismatch between file and format string.
Trouble reading number from file (row 1, field 2) ==> TMobi
Error in ==> csvread at 52
m=dlmread(filename, ',', r, c);
même si je les utilise dlmread('cell4.csv', ',')
, il reste encore quelques erreurs:
??? Error using ==> dlmread at 145
Mismatch between file and format string.
Trouble reading number from file (row 1, field 2) ==> TMobi
Le deuxième problème est de savoir comment puis-je trouver le mappage de relation de manière simple, la méthode naïve est à l'aide d'un forloop pour trouver la position du tableau.
Merci pour votre aide:)
OriginalL'auteur LoveTW | 2012-05-17
Vous devez vous connecter pour publier un commentaire.
Les deux csvread et dlmread de travail uniquement pour les données numériques. Quelque chose comme cela devrait fonctionner pour vous
Quel est le type de
nums
etstrs
? Une chaîne de caractères ou un tableau de char? Puisque je ne peux pas utiliserstr2num(nums)
...OriginalL'auteur Mauro
Une autre réponse que de travailler si vous avez un mélange de texte/numérique, csv, mais vous ne savez pas ce que le format est, ou il est hétérogène, utiliser le " csv2cell fonction de: http://www.mathworks.com/matlabcentral/fileexchange/20836-csv2cell
c(1, :)
donnera à vos en-têtes etc(2:end, k)
vous donnera chacune des colonnes (sans la tête),for k = 1:size(c, 2)
OriginalL'auteur Matt S.