Soru sorBir matrisi parçalara bölerek alt matrisler oluşturmak
Aykut tarafından 3 yıl önce soruldu

Merhaba,
4 sütun-8784 satırlık bir matriste ( sütunlar ay-gün-saat-sıcaklık) her gün 24 saat olacak şekildedir (her gün, 24 saat için satırlarda 24 defa tekrarlanmakta, aylar ise 24×12 defa tekrarlanmakta) İstediğim bu matristeki bazı günlerin çıkartılması (buna bağlı aylar da çıkacak haliyle) ve 2 sütunlu(ay-gün)-231 satırlık matrise uygun hale gelmesi( bu matriste saatler ve sıcaklıklar yok. 2 sütunlu matris olması gereken ay ve günleri içeriyor)
örnek olarak aşağıda 1. ay-1. gün için 24 saatlik sıcaklık verileri mevcut.
ay             gün           saat           sıcaklık

1
1
0
-4,85

1
1
1
-4,98

1
1
2
-5,00

1
1
3
-5,22

1
1
4
-5,43

1
1
5
-5,50

1
1
6
-5,07

1
1
7
-3,88

1
1
8
-2,16

1
1
9
-0,39

1
1
10
0,45

1
1
11
0,97

1
1
12
1,63

1
1
13
1,93

1
1
14
1,34

1
1
15
0,14

1
1
16
-0,32

1
1
17
-0,58

1
1
18
-0,87

1
1
19
-1,18

1
1
20
-1,72

1
1
21
-2,40

1
1
22
-2,99

1
1
23
-3,13

Aşağıda da 2 sütunlu olan olması gereken ay ve günleri gösteren matrisin bir parçası var(görüldüğü gibi 5. aydan 9. aya atlanmakta arada ayı ayın bazı günleri de yok-9. ayın sadece 24 ve 30. günleri mevcut) 4 sütunlu matris olması gereken 2 sütunlu matristeki ay ve günlere uygun hale getirilecek. 4 sütunlu matristen fazla ay ve günler çıkartılacak. 4 sütunlu(ay-gün-saat-sıcaklık) ve ( 231×24) satırlı bir matris haline gelecek
ay              gün

5
14

5
25

5
26

9
24

9
30

10
1

10
2

10
3

10
4

Çok uğraştım fakat sonuca ulaşamadım.

6 Cevap
En iyi cevap
sayginer Yönetici tarafından 3 yıl önce cevaplandı

Bu sorunun bir benzerini bu bağlantıda yanıtlamıştım:https://matlabturkiye.com/soru-sor/zamana-bagli-bir-veriyi-parcalar-bolerek-grafigini-cizdirmek
Sizin probleminize göre modifiye edilmiş örneği de aşağıdaki gibi paylaşıyorum.

clear, clc
TumVeri = [linspace(0,20,20)' rand(20,1)]; 
% Yukarida,  Ilk sutun zaman, ikinci sutunu veriyi temsil eden, rastgele bir veri seti olusturalim.
% Dipce: Verisetimiz toplam 20 elemandan olusuyor.
m = 5; % Kacar kacar gruplayalim? 
% Onemli: m degeri Veriseti uzunlugumuzun tamsayi kati olmali ki esit araliklarla bolebilelim
for i = 1:20/m %Toplam verimizi kac parcaya ayiriyoruz?
    Bitis     = i*m; % Her parcanin son element numarasi
    Baslangic = Bitis-(m-1); %Her parcanin ilk element numarasi
    Zaman = TumVeri(Baslangic:Bitis,1);
    VeriParcasi  = TumVeri(Baslangic:Bitis,2);
    ParcalanmisVeriler(i).Parca = [Zaman VeriParcasi]
end

ParcalanmisVeriler(1).Parca %1. Parca

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

yardımcı olabilirseniz sevinirim.

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

Lütfen yardımcı olabilirmisiniz

sayginer Yönetici tarafından 3 yıl önce cevaplandı

Merhaba,
Çok basite indirgeyecek olursak eğer,
3 sütun veriniz var ve örneğin 1. sütündaki 4-7 arası sütünları çıkartmak istiyorsunuz ayni zamanda 2. ve 3. sütundaki 4-7 arasındaki verileri de çıkartmak istiyorsunuz. Doğru mu anladım acaba?

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

Bu soruma çözüm bulabildim teşekkürler.
Hesaplamaların devamında başka bir sorunla karşılaştım bunu sormak isterim. 4 sütunlu bir matriste 4. sütundaki verileri peşpeşe gelen 24 lü satırlar halinde toplamak ve yeni bir matris oluşturmak istiyorum. Daha açarsam, ay-gün-saat-sıcaklık şeklinde 4 sütun ve 5544 satırlık veriler mevcut. her gün 24 saatten oluşmakta. örneğin 1. ay 1. gün  1. saat  10 derece (1 1 1 10) ikinci sütun da (1 1 2 8) 1. ay 1. gün  2. saat  8 derece şeklinde devam ediyor. Saatlik olarak bulunan sıcaklık verilerini toplayarak  ay-gün- sıcaklık şeklikde 3 sütunlu günlük sıcaklık verileri yapmalıyım. Yalnız, yılın hergünü için veri yok sadece 231 gün için 231×24=5544 adet veri var. Hangi günler varsa o günler için hesap yapılmalı, sonuçta 3 sütunlu, 231 satırlı bir veri oluşması gerekiyor.
 

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

Çok teşekkürler.