Soru sorçoklu veri içinde aynı özellikleri sağlayan verileri bulma
Aykut tarafından 4 yıl önce soruldu

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.

32 Cevap
En iyi cevap
Aykut tarafından 4 yıl önce cevaplandı

içi boş görünüyor
tablo_hepsi
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]
 

Aykut tarafından 4 yıl önce cevaplandı

for döngüsündeki eksiği de bulabilirsek onu da kullanabilirim timetable ile sonuca ulaşamazsam. öğrenmiş de olurum.

Aykut tarafından 4 yıl önce cevaplandı

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),:);

Caglar Yönetici tarafından 4 yıl önce cevaplandı

tablo_hepsi degiskenini cift tiklayarak acip bir fotografını gonderebilir misiniz?

Aykut tarafından 4 yıl önce cevaplandı

içi boş görünüyor
tablo_hepsi
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]
 

Aykut tarafından 4 yıl önce cevaplandı

Aykut tarafından 4 yıl önce cevaplandı

Aykut tarafından 4 yıl önce cevaplandı

Aykut tarafından 4 yıl önce cevaplandı

Esenboga_deneme
 

Caglar Yönetici tarafından 4 yıl önce cevaplandı

Çü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
 

Aykut tarafından 4 yıl önce cevaplandı

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.

Caglar Yönetici tarafından 4 yıl önce cevaplandı

Hmm, o saturı
tablo_hepsi = double(str(tablo_hepsi)); 
olarak degistirmeyi deneyebilir misiniz

Aykut tarafından 4 yıl önce cevaplandı

aşağıdaki hatayı verdi

 
 

Aykut tarafından 4 yıl önce cevaplandı

Bu kod find komudu ile yazılabilir mi

Caglar Yönetici tarafından 4 yıl önce cevaplandı

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?