Soru sorMATLAB ile Veri icerisinde ki değerleri if komutuyla yeni bir sütun haline getirme
matlab.m tarafından 3 sene önce soruldu

İ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

8 Cevap
En iyi cevap
Caglar Yönetici tarafından 3 sene önce cevaplandı

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

Caglar Yönetici tarafından 3 sene önce cevaplandı

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?

matlab.m tarafından 3 sene önce cevaplandı

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

Caglar Yönetici tarafından 3 sene önce cevaplandı

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.

matlab.m tarafından 3 sene önce cevaplandı

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.

Özgür Yönetici tarafından 3 sene önce cevaplandı

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.

 

Özgür Yönetici tarafından 3 sene önce cevaplandı
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
matlab.m tarafından 3 sene önce cevaplandı

Teşekkürler hocam.