2017-10-20 28 views
1

Je suis vraiment un débutant dans la programmation MATLAB. J'ai un problème dans le codage d'importer plusieurs fichiers csv dans un de certains dossier:Code d'erreur dans l'importation de plusieurs fichiers CSV à partir de certains dossiers en utilisant matlab

my error

Ceci est mon code:

%% Importing multiple CSV files 

myDir = uigetdir; %gets directory 
myFiles = dir(fullfile(myDir,'*.csv')); %gets all csv files in struct 
for k = 1:length(myFiles) 
    data{k} = csvread(myFiles{k}); 
end 

J'utilise le uigetdir de code afin de pouvoir sélectionner des données de n'importe quel dossier, parce que j'essaye de faire un programme d'automation ainsi il serait flexible pour employer par d'autres. Le code que je cours recherche seulement le répertoire et montre la liste, mais pas pour fusionner les fichiers de csv en un et le lit dans «les données d'importation». Je veux qu'il soit fusionné et lu comme un seul fichier. Mon fichier fusionné devrait ressembler à ceci avec virgule délimité et se composent de 47 fichiers csv fusionnés (cette image est l'un des fichier csv je): my merged file

Je travaille pour une journée entière mais je trouve toujours le code d'erreur. S'il vous plaît aidez-moi :(Merci beaucoup d'avance pour votre aide

+0

Pourriez-vous fournir un contenu d'échantillons pour votre fichier csv juste pour informer quelle fonction utiliser pouvez-vous aussi inclure votre code jusqu'à présent? Essayez-vous de combiner le contenu des fichiers csv? Votre première phrase n'est pas claire –

+0

Salut @PhilipBrack J'ai modifié ma question. Je vous remercie. –

+0

votre csvread fonctionne-t-il pour 1 fichier? –

Répondre

0

Comme le message d'erreur indique, vous essayez de faire référence à myFiles comme un tableau de cellules quand il ne l'est pas.La sortie de dir est une structure, qui ne peut pas être indexé comme une matrice de cellules

vous voulez faire quelque chose comme ce qui suit:.?

for k = 1:numel(myFiles) 
    filepath = fullfile(myFiles(k).folder, myFiles(k).name); 
    data{k} = csvread(filepath); 
end 
+0

Merci pour votre réponse @excaza Cependant, j'ai toujours un message d'erreur. Si je veux utiliser la forme délimitée par des points-virgules, comment l'ajuster dans mes codes? Merci –

+0

@KasihDitaningtyas utilise ['dlmread'] (https://www.mathworks.com/help/matlab/ref/dlmread.html). – excaza