Soru sorMatlab appdesigner
hk tarafından 2 yıl önce soruldu

Matlab Appdesigner da arduinodan gelen verileri UIAxesde çizdirme işlemi yapıyorum fakat grafikte çizilen değerler sıkışıyor. Yani sinyaller geldikçe grafik x ekseninde sağa doğru aksın istiyorum. Bu sıkışmayı gidermenin bir yolu var mı? Matriks veya vektör kullanarak yapılabilir mi? yardımcı olursanız çok sevinirim.

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

Merhaba,
timer kullanarak bu isteginizi gerceklestirebilirsiniz gibi gozukuyor. Buradaki baglantiyi inceleyebilirsiniz: https://www.mathworks.com/help/matlab/creating_guis/wind-speed-gui-in-app-designer.html

hk tarafından 2 yıl önce cevaplandı

Cevabınız icin cok teşekkür ederim. Timer ile denedim ama olmuyor farkli bir yolu var midir?

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

Arduino'dan gelen verileri xveri ve yveri isimli iki değişkende tuttuğunuzu varsayıyorum. Son 100 adet veri noktasını çizdirmek istediğinizi kabul edelim. Aşağıda kaba taslak bir örnek veriyorum, siz kodunuza göre düzenleyebilirsiniz. Aşağıdaki parçada xveri vektörü 100 tane değeri aştığında, kod artık sadece son 100 veri noktasını alıp çizdirmeye başlıyor. Orijinal veriye dokunmuyor. Tabii ayrıca UI kodunuza bağlı olarak clf de yapmanız gerekbilir eğer bir yerlerde hold on kullanıyorsanız. Öte yandan eksenleri güncellemek için de axis tight komutu gerekebilir.

if size(xveri)>100 %Bu if şartıyla xveri vektörünüzde 100'den fazla veri noktası oluşup oluşmadığını kontrol ediyoruz
xcizilenveri=xveri(end-100:end); %Son yüz veri noktasını al
ycizilenveri=yveri(end-100:end);
plot(xcizilenveri,ycizilenveri);
clear xcizilenveri ycizilenveri %Boyut sorunu olmaması için her çizimden sonra verileri temizliyoruz
else %Eğer veri vektörünüz küçükse mevcut çizdirme yönteminizi kullanın
plot(xveri,yveri);
end