Soru sorExceldeki verileri matlab ile toplama
burakkaya tarafından 7 yıl önce soruldu

Excelde 11507 satır ve 8 sütün(I'ya kadar) verilerim var. A sütununda tarihler yazıyor. Benim yapmak istediğim exceldeki bu verileri kullanarak matlabda aynı tarihteki verilerin toplanmasını istiyorum. Yani B sütununda sayısal veriler var. B2den B17 ye kadar olan kısım aynı güne ait ben bunları bir döngüye sokup matlabda bütün hepsini kolayca yapacak program olduğunu duydum. Fakat pek bir bilgim yok bu konuda. Yardımcı olursanız sevinirim. Teşekkürler iyi günler.

1 Cevap
hakkans Yönetici tarafından 7 yıl önce cevaplandı

Verinizde aynı güne ait veri sayısı hep aynı mı? Yani her gün için 15 veri mi var? Düzenli ise bir for döngüsü ile yapılabilir. Ama bu toplama işleminden önce yapılması gereken daha önemli bir şey Excel verisinin Matlab'a yüklenmesi. Kitap1.xlsx isimli bir Excel dosyasını Matlab'a aşağıdaki komutla yükleyebilirsiniz:

veri=xlsread('Kitap1.xlsx');

Ancak bu noktada önemli olan bir şey var ki, verinizdeki ondalık kısımların virgül değil nokta ile ifade edilmiş olması gerekiyor. Verinizde virgülle ifade edilmiş kısımlar Matlab tarafından NaN (Not-a-Number->sayı değil) olarak okunacaktır ve işlem yapmanız mümkün olmayacaktır. Eğer verinizde virgül kullanılmışsa, Excel'de Bul ve Değiştir ile bütün virgülleri noktaya çevirin.
Bu işlemi gerçekleştirdikten ve yukarıdaki komutu çalıştırdıktan sonra, Matlab çalışma alanında (workspace) veri isimli değişken görünecektir. İsminin üzerine çift tıklayarak veri değişkeninin içindekileri görebilirsiniz. Benim yaptığım denemede Matlab tarihlerin yazılı olduğu ilk kolonu atlamıştı. Bu durumda, B kolonu dediğiniz A kolonu haline gelmiş oldu. Eğer her gün için sabit sayıda veri varsa, aşağıdaki kod parçası toplamları yapıp her günün toplamını ayrı bir eleman olarak toplam vektörüne atacaktır.

k=1;
for ii=2:16:length(veri)-15
toplam(k)=sum(veri(ii:ii+15,1));
k=k+1;
end

Bu kod parçasındaki varsayımlar:

  • Tarih kolonu Matlab tarafından okunmamıştır ve toplanacak değerler ilk kolondadır (sum komutunun parantez içindeki 1 sayısı kolon numarasını göstermektedir)
  • Her günde 15 veri bulunmaktadır.
  • Veri ikinci satırdan itibaren başlamaktadır. Eğer ikinci satırda başlamıyorsa for döngüsündeki 2 gerekli sayıyla değiştirilmelidir.