İyi günler hocam göndermiş olduğum resimde gorulmek üzere elimde bulunan Data verisinin içerisindeki S diye görülen veri kilometreyi göstermektedir 1×10011 lik S verisinin icinde bulunan degerler km yi göstermektedir benim burda yapmak istediğim bu km leri
0<S<10
10 <S<20
20<S<30
.
.
.
.
Bu şekilde S verisinin icinde bulunan km değerlerinden ilk 10 km içerisinde olanları bir sütuna sonraki 20 km içerisinde olanları bir sütuna ve böylece en yüksekte olan bir sütuna getirecek şekilde nasil yapabilirim
Ben doğru anladıysam kodu yazdım zaten örneğin,
>> S = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10];
>> s_2_ve_7_arasi = S(S>=2 & S<=7)
s_2_ve_7_arasi =
2
3
4
5
6
7
Bu işlem sütun sayıları tutmazsa hata verecektir. Asıl yapmak istediğiniz nedir? Neden akış halindeki bir veriyi sütun sütun bölmek istiyorsunuz?
yapmak istediğim işlemin devamında belirttiğim km ler içerisine düşen değerlerle yeni bir işlem verisi oluşturacağım harita mühendisliği çalışması olduğu için daha önceki sorulara baktım benzer bir örnek bulamadım sayfada. bu nedenle komut adımlarından da bahsederseniz iyi olur hocam
O zaman ayrı bir sütun degil degisken mantıklı olabilir. s_ilk_on = S(S<10), s_on_yirmi = S(S>10 & s<20) gibi atamalar yapabilirsiniz.
Bu dediğinizi yapacak komutu bulamadım bir örnek vererek açıklarsanız ya da bunu anlatan bi açıklama linki paylaşırsanız memnun olurum hocam.
if-elseif bloklarını arttırarak kendi belirleyeceğin sınırları ekleyebilirsin dikkat etmen gereken nokta benim denediğim örnek veriler yani S vektörü tamsayı, fakat senin örnek verilerin ondalıklı sayı bu yüzden if-elseif bloklarındaki sınırları ondalıklı sayı olarak belirlemen gerekebilir. For döngüsü herhangi bir if-elseif bloğunun içerisine girerse yeni bir sütun oluşmaya başlıyor.
clc clear all %Örnek Bir S Datası oluşturma S=1:1:100 %Transpozunu alarak tek sütun haline dönüştürme S=S' j=1; k=1; for i=1:size(S) A(k,j)=S(i) k=k+1; if (S(i)>9 & S(i)<11) j=j+1; k=1; elseif (S(i)>19 & S(i)<21) j=j+1; k=1; elseif (S(i)>29 & S(i)<31) j=j+1; k=1; end end