Soru sorCizdirilen grafikte belli bir degere kadar / degerin altini yada üstünü nasil gösterebiliriz (lütfen eke bakiniz)
m.topan tarafından 5 yıl önce soruldu

Merhaba herkese, asagida cizdirilen grafikte y eksenindeki kN degerlerinde 50 kN altindaki degerler bizi ilgilendirmedigi icin onlari nasil kesip istedigim degerden itibaren bir gösterim yapabilirim ? cevaplariniz icin simdiden tesekkürler

10 Cevap
En iyi cevap
sayginer Yönetici tarafından 5 yıl önce cevaplandı

Merhaba,
plot yaptıktan sonra xlim ve ylim fonksiyonları grafiğinizin x ve y eksenlerini kırpabilirsiniz. Aşağıdaki örneğe bakabilirsiniz.

ylim ([0 100])
m.topan tarafından 5 yıl önce cevaplandı

afedersiniz 100 kN degerinin alti olacakti. 50 degil

hakkans Yönetici tarafından 5 yıl önce cevaplandı

Merhaba,
Eğer verinizin içinden bu noktaları tamamen silmek istiyorsanız (veri ismine yveri diyelim) aşağıdaki komutu kullanabilirsiniz:

yveri(find(yveri>=50))=[];
m.topan tarafından 5 yıl önce cevaplandı

Selamlar,
 
find() komutu asagida görüldügü sekilde kullandim. Sonuc olarak derledigimde bombos bir grafik cikmakla birlikte y ekseninde birimler de ondalikli sayiyiya döndü.. Sebebi ne olabilir acaba? Normalde yukaridaki grafikteki y ekseninde bulunan degerler olmasi gerekiyordu. Acaba find komutunu mu yanlis kullandim ?
 
Tesekkürler
 

hakkans Yönetici tarafından 5 yıl önce cevaplandı

find komutunu kullanımınız doğru değil. find() komutu, içindeki ifadeyi sağlayan değerlerin sıra numaralarını (indislerini) verir. Sarı işaretli satırı aşağıdaki gibi değiştirin:

force1=force1(find(force1>=50));
m.topan tarafından 5 yıl önce cevaplandı

dediginizi yapmama ragmen sonuc degismedi. asagidaki uyari geliyor:
 

hakkans Yönetici tarafından 5 yıl önce cevaplandı

Zaman vektörünü ayarlamayı unuttuk. Şu satırı az önce yazdığımızın üstünde bir yere ekleyin:

t1(find(force1>=50))=[];
m.topan tarafından 5 yıl önce cevaplandı

Selamlar,,kodu bu sekilde yazinca oldu.
t1=t1(force1>=50);
force1=force1(force1>=50);
 
Son hali bu sekildedir:
 
 

 
Matlab find komutunu yazsan bile kaldirman icin tavsiyede bulunarak söyle bir uyari veriyor:
 

 

hakkans Yönetici tarafından 5 yıl önce cevaplandı

Her ne kadar Matlab bu uyarıyı verse de, sizin son gönderide yaptığınız şekli takip edersek de doğru olmuyor. Grafikte göreceğiniz üzere hâlâ 50 üzeri değerler grafikte çiziliyor. Bunun sebebi, force1>=50 ifadesini tek başına kullandığınızda size force1 vektöründe 50 üzeri olan değerlerin listesinin verilmesidir. Ancak bizim çıkış noktamız, 50'den fazla olan noktaların sıra numaralarını (indislerini) bulmaktı. Bu indisleri kullanarak t1'de buralara tekabül eden elemanları da eliyoruz. Benim yazdığım şekilde sonuç elde edemediniz mi? Onun grafiğini paylaşır mısınız?

m.topan tarafından 5 yıl önce cevaplandı

Merhabalar. Bulur bulmaz paylasicam.. Bu arada daha yaratici olmamiz gerekirse asagidaki resimde gördügünüz üzere grafik cok karisik.Resmin sol tarafinda saat 08:00dan yaklasik 09:25e kadar olan datalari almak geriye kalan bölümü ise 750 kN altindaki degerleri dün yaptigimiz gibi kesmek istiyorum. Kisacasi su zamandan itibaren su degerlerin altini filtreleme islemini nasil yapabiliriz. Tesekürler