Soru sorMatlaba csv dosyalarını import eden fonksiyon
tekel_12 tarafından 6 yıl önce soruldu

Elimde bir dosya içinde bulunan  csv dosyaları import etmek istiyorum.Tek tek ediyorum ilk2 sütünn cell array diğer sütünlar numeric matrix olarak ama dosyalar cok fazla oldugu için bunları hepsini eden fonksiyon lazım 

7 Cevap
ekremt Yönetici tarafından 6 yıl önce cevaplandı

Merhaba, konuya tam olarak hakim olmadığım için sadece sorunuza yönelik bir kaç araştırma yaptım. Onların linklerini aşağıda belirtiyorum. İnceleyin daha sonra çözüme ulaşamaz iseniz birlikte bir daha çözüm için uğraşalım. Şuan için sınavlarım olduğu için kodu net olarak ortaya dökemedim. 
 
1)csvread
2)How do I import CSV files using csvread?
3)How to read a .csv file with text and numbers?
Bunları inceleyin daha sonra tekrar sorunuz olursa birlikte bakalım.
 

tekel_12 tarafından 6 yıl önce cevaplandı

Öncelikle cevap verdiğiniz için teşekkür ederim linklerde 1, cok genel anlatıyor 2,cınde cevap bulamamıs 3, benım ıstedıgım olabılır ama ben matlabı ilk defa kullanmaya basladım.için ne nedir bilmiyorum.Fonksiyon yazmaya calsıtım ama olmadı biraz örnek kısıtlı.Proje ödevimin takıldıgım noktalardan bir yerdi o yüzden biraz zamanım ksıtlı

ekremt Yönetici tarafından 6 yıl önce cevaplandı

Siz yapmış olduğunuz çalışmanın kodunu buraya belirtirseniz ve hata aldığınız kısmı yazarsanız o şekilde bir daha bakabiliriz. En azından benden daha iyi bilenler gördüğü zaman doğru cevaba daha hızlı ulaşırız

tekel_12 tarafından 6 yıl önce cevaplandı
csvfolder='C:\Users\TOSHIBA\Desktop\Proje\Son Hali\Musıc\csv\';
cvsfiles=dir([csvfolder '*.csv']);
params=[1 1 0 0];
Nf=numel(cvsfiles);
LLDdim=12;% size(lld,2);
all_funs=zeros(Nf,LLDdim*sum(params));
filenames=cell(Nf,1);
for i=1:Nf
 filename=strcat(csvfolder,cvsfiles(i).name);
 lld=importlld(filename);
 filenames{i}=cvsfiles(i).name;
 all_funs(i,:) = lld2fun(lld,params);
 end
%%
M=dlmread('music_emo_fun.csv',';',1,1);
targets=M(:,end-3:end);
IS10feats=M(:,1:end-4);
%%
trainind=1:3095;
testid=3096:5112;
 X_tr=IS10feats(trainind,:);
Y_tr=targets(trainind,1);
X_test=IS10feats(testid,:);
Y_test=targets(testid,1);
% std filter: 0 std olanları temizle 
std_filter=std(X_tr)>eps;
X_tr=X_tr(:,std_filter);
X_test=X_test(:,std_filter);
% z-normalization
[X_tr,mx,stdx]=autosc(X_tr);
[X_test]=scal(X_test,mx,stdx);
 filenames_test=annotationscls(testid,1);
filenames_orig=filenames_test;
for i=1:numel(filenames_test)
 filenames_orig{i,1}=filenames_test{i}(1:end-6);

end
%%
kernel_type=1;%1 Linear, 2=RBF
C_set=10.^[-5:0];
perf=zeros(numel(C_set),1);
for k=1:numel(C_set)
 C=C_set(k);
 [predict_label,accuracy,dec_values] = ...
 oneVrestSVM(X_tr,Y_tr,X_test,Y_test,C,1);
 perf(i)=accuracy;
end
%%
 
%% Şarkı bazlı karar birleştirme
songlist=unique(filenames_orig);
Ns=numel(songlist);
song_labels=zeros(Ns,1);
 scores=zeros(Ns,2);
for i=1:Ns
 filter=strcmp(songlist{i},filenames_orig);
 scores(i,:)=mean(dec_values(filter,:));
 song_labels(i)=mode(Y_tr(filter));
end
[~,fused_label]=max(scores,[],2);
accuracy=sum(fused_label==song_labels)/numel(song_labels);
tekel_12 tarafından 6 yıl önce cevaplandı

Hocam bana verdıgı .m dosyası bu ilk önce elle import ediyordu oluyordu.sonra benım dosyamın boyutu büyük olduğu için csv dosyasını bölerek her şarkı için ayrı csv dosyası olsun dedi onu yaptım ama bu sefer bu dosyaları topluca import oluyor.olması lazım hocam onun içinde birseyler ekledı ama ben kendimde çalısmıyor.

sayginer Yönetici tarafından 6 yıl önce cevaplandı
  1. Hocada çalışan kodun aynısı sizde mi çalışmıyor?
  2. Bir sürü CSV dosyasını otomatik olarak tek tek mi import etmek istiyorsunuz? (Yani bu dosyalardan veri alacaksınız?)
  3. Bu CSV dosyalarındaki sadece nümerik değerleri mi almak istiyorsunuz?
  4. Bu bir sürü olan dosyaların isimleri neler?
  5. C:\Users\TOSHIBA\Desktop\Proje\Son Hali\Musıc\csv\ bu dosya konumu sizin bilgisayarınızdaki bir konum mu?
tekel_12 tarafından 6 yıl önce cevaplandı

Öncelikle teşşekürler sorunu çözdüm dizin hatası yapmısım.Fonksiyon ve kod farklı yerdemıs ben aynı yerde sanmısıtm.