matlap gui ile birimleri ayırt etme

Peak2Peak

Aktif Üye
Katılım
27 Haziran 2020
Mesajlar
289
Merhaba MATLAB'da kendime bazı formüler için gui hazırlmaya karar verdim.
Önce basitten başlarayak ilerleceğim. Bazı yerlerde sorun yaşıyorum.
mesela cevap 0.002V çıkarsa bunu 2mV şeklinde göstermek istiyorum.
bunu yapmak için sayının tamsayı olduğu buluna kadar 10la çarpmasını ve kaç kere çarptıysa ona uygun bir birimi bulmasını düşündüm
tamsayı olduğunuda anlamak için floor(x)==x koşulunu düşündüm.
Kod:
for i= 1:100
                        I=I*10;
                        if floor(I)==I
                           msgbox("525252");
                            break
                        end

bu şekilde bir kod yazdım ama doğru çalıştıramadım.Nerde hata yapıyorum.
 
Taktiğinde şöyle bir hata var, mesela mili ile mikro arasına başka bir isim kullanmıyoruz. Mesela cevap 0.0025V çıksa sen buna ya 2.5mV dersin ya da 2500uV ama senin kod 25e-4 de duracak. Kendi guinden bağımsız number display formatı ayarlayabiliyorsun, o sekme istediğini yapıyorsa senin guinin de number output formatını öyle ayarlayabiliyor olmalısın
 
sayıların gösteriş şeklini format komutu belirliyor matlab'de. Ama bir sayıya bir bilimsel birim verme desteği bildiğim kadarıyla yok. Onu senin programda yapman lazım, çünkü sadece senin programın biliyor sayının voltaj olduğunu, matlab bilmiyor.
 
Taktiğinde şöyle bir hata var, mesela mili ile mikro arasına başka bir isim kullanmıyoruz. Mesela cevap 0.0025V çıksa sen buna ya 2.5mV dersin ya da 2500uV ama senin kod 25e-4 de duracak. Kendi guinden bağımsız number display formatı ayarlayabiliyorsun, o sekme istediğini yapıyorsa senin guinin de number output formatını öyle ayarlayabiliyor olmalısın
0.0025V 4kere 10ile çarparak tamsayı yaptık 25 elde ettik.
bu 4 çıkan sayı 3büyük 6dan küçük ise ona göre aksiyon alıp
2kere 10 ile çarpıp mikro ifadesi veya 1 kere 10 bölüm mili ifadesi ekleyecektim ama kod bazen çalışıyor bazen çalışmıyor.
örnek olarak


0.2323 sayısı girdiğimde 4 kere 10la çarparak tam sayı halini elde edebiliyorum.

1708243228351.png





0.000231623 gibi bir sayı yazdığımda düşünceme göre 9 kere 10 çarpsam 231623 tam sayısını elde edeceğini düşünüyorum.

1708243348594.png


ama sonuç olarak 2.3162e+16 gibi bir sayı elde ediyorum.Bu durumu çözemedim
 
çok virgüllü bir şeyde nedense sapıtıyor.
mesela
0.223456 girdim
223.456000000000e-003


I =

2.23456000000000e+000


I =

22.3456000000000e+000


I =

223.456000000000e+000


I =

2.23456000000000e+003


I =

22.3456000000000e+003

I =

223.456000000000e+003 burda durması lazım tam sayı oldu.

ama bir türlü durmuyor durduğu sayı 2.2346e+16
 
Küsüratlı bir sayı memory de nasıl tutuluyor, birebir aynı değerde tutmak mümkün mü bi araştır bence. Şu an senin sıkıntın buradan gelihor gibi, sen 0.0003 tutmaya çalıştığında memory bunu şöyle tutabilir(örneği salladım) 0.00029999999999, sonra 10 ile çarpmaya başlayınca sıkıntı olur. Meşhur bir para üstü verme problemi vardır, programlama giriş derslerinde olur. Mesela bu yüzden o ödevde 1 kuruş hatası olurdu, çözmek için uğraşmak lazımdı.
 

Çevrimiçi üyeler

Forum istatistikleri

Konular
5,892
Mesajlar
100,583
Üyeler
2,494
Son üye
yasin533

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Kesici/Spindle hızı hesaplamak için SpreadSheet UDF'leri kullanın, hesap makinesi çok eski kalan bir yöntem :)
Back
Top