10 yıllık bir süreçte seçilen yıllara göre aynı ay-gün-saat değerlerine karşılık gelen sıcaklık verilerini bulup ortalamalarını almam gerekiyor. Bu şekilde 10 yıllık veri ortalamasını bulmalıyım. Elimde 10 yıllık sıcaklık verileri mevcut. Örneğin 2008 yılı 1. ay 1. gün 1. saat sıcaklığı -12 C; 2009 için 1. ay a. gün 1. saat sıcaklığı -8C; bunun gibi 10 yıl için sıcaklıkları bulup 10 a bölüp ortalama bulmalıyım. Tabi bunu tüm ay-gün ve saatler için ayrı ayrı yapacağım. Sizden ricam seçilen yıllar için aynı ay-gün-saate karşılık gelen, mesela her yılın 1. ay 1. gün ve 1. saatine karşılık gelen sıcaklık değerlerini bulup veren bir kod. Find komutunu araştırdım fakat çok basit örnekler bulabildim, 3 farklı değere bağlı bir değeri(sıcaklık) bulma durumu daha karışık.
içi boş görünüyor
https://hizliresim.com/I8Ipxa
[url=https://hizliresim.com/I8Ipxa][img]https://i.hizliresim.com/I8Ipxa.jpg[/img][/url]
[url=https://hizliresim.com/I8Ipxa][img]https://i.hizliresim.com/I8Ipxa.jpg[/img][/url]
for döngüsündeki eksiği de bulabilirsek onu da kullanabilirim timetable ile sonuca ulaşamazsam. öğrenmiş de olurum.
clear all
clc
tablo_hepsi=xlsread('Esenboga_deneme');
g=0;
for i_ay=1:1:12
for i_gun=1:1:31
for i_saat=0:1:23
mevcut_veriler=tablo_hepsi((tablo_hepsi(:,2)==i_ay)&(tablo_hepsi(:,3)==i_gun)&(tablo_hepsi(:,4)==i_saat),:);
ortalama=mean(mevcut_veriler(:,5));
if ~isnan(ortalama)
g=g+1
tablo_ortalamalar(g,:)=[i_ay, i_gun, i_saat, ortalama];
end
end
end
end
Index in position 2 exceeds array bounds.
Error in yillarhesap_havalimani (line 10)
mevcut_veriler=tablo_hepsi((tablo_hepsi(:,2)==i_ay)&(tablo_hepsi(:,3)==i_gun)&(tablo_hepsi(:,4)==i_saat),:);
tablo_hepsi degiskenini cift tiklayarak acip bir fotografını gonderebilir misiniz?
içi boş görünüyor
https://hizliresim.com/I8Ipxa
[url=https://hizliresim.com/I8Ipxa][img]https://i.hizliresim.com/I8Ipxa.jpg[/img][/url]
[url=https://hizliresim.com/I8Ipxa][img]https://i.hizliresim.com/I8Ipxa.jpg[/img][/url]
Çünkü excel dosyasında sayılar özel olarak metin olarak isaretlenmis. Ya excelde sayıların hucre turunu sayı yapın ya da
tablo_hepsi=xlsread('Esenboga_deneme');
yerine
[~,tablo_hepsi]=xlsread('Esenboga_deneme'); %yazi icerikleri al
tablo_hepsi = tablo_hepsi(2:end,:); %baslik satirini sil
tablo_hepsi = double(tablo_hepsi); %sayiya donustur
exceldeki verilern tümünde metini sayıya dönüştürüyor şu an biraz zaman alıyor fakat verdiğiniz eklentiyi yapıp denedim tekrar şu hatayı verdi.
Hmm, o saturı
tablo_hepsi = double(str(tablo_hepsi));
olarak degistirmeyi deneyebilir misiniz
Yani su an exceldeki verinizi cekmeye calısıyoruz, find ya da diger yontemler daha sonra gelecek.
Hata mesajını anlayamadım. xlsread komutunu elle mi duzenlediniz?