Ana Sayfa Programlar Matlab & Simulink Seri Programlama Teknikleri-2

Seri Programlama Teknikleri-2

441
0
Paylaş

Matlab programının çalışma sistemi vektör ve matris işlemleri için optimize edilmiştir.  Bu nedenle yazdığınız bir kodun vektörler ve matrislerden  oluşması işlemlerini hızlandıracaktır. Vektörler ile çalışmanın bize kazandırdıklarını 3 ana başlık halinde incelemek gerekirse ;

  1. Görüntü açısından vektörel olarak kodlama yapmak , kodun anlaşılabilirliği artırmaktadır. Daha derli toplu bir kodunuz olduğu için gerek siz gerekse ileride koda müdahale edecek biri kodu hızlıca anlayabilecektir.
  2. Eğer kodumuzu vektörel tabanlı oluşturursak , daha az döngü kullanacağız. Daha az döngünün kullanılması bize daha kısa bir kod ve daha az hatanın barındığı bir kod verecektir.
  3. Vektörize edilmiş bir kod döngü tabanlı olarak yazılmış bir koda göre kat kat daha hızlı çalışmaktadır.

Vektörize edilmiş bir koda örnek vermek gerekirse;

Aşağıdaki kodta bir döngü içerisinde t’nin 1001 değeri için sin(t) değeri hesaplanmaktadır.

Fakat bu kodu aynı sonucu verecek şekilde , aşağıdaki gibi yazmak mümkün.dür

Görüldiğü üzere ikinici kod birinciye göre daha kısa ve Matlab’ın ilgili kısımı derleyip koşturması daha hızlı yapılmaktadır.

Aşağıdaki kodta ise yine bir döngü içerinde her 5. elemen toplanmaktadır.

Vektörilizasyon kullanılarak  işlemlerin en kadar hızlandığını  işlem sürelerine bakarak görebilirsiniz.

Dizi işlemleri

Aşağıdaki hacim formülasyonu ile 10000 adet çap ve yükseklik için hacim hesabı yapalım.

Bu yazıyı okumadan önce muhtemelen yazacağınız kod aşağıdaki gibi olacaktır. Bir for döngüsü içerisinde tüm D ve H parametreleri le hacim hesabını yapacaktınız.

Fakat bu yazıyı okuduktan sonra aşağıdaki gibi bir vektörizasyon işlemi ile , bu kodu aşağıdaki gibi yazabiliriz.

Not:   Dizi işlemlerinde */, ve ^, operatörlerinden önce ‘.’ koymanız onları bir dizi işlem operatörüne döndürecektir

İşi özetlemek gerekirse , kodlarımızdaki döngüsel işlemleri vektörlere dönüştürüp yazmamız yukarıda belirtilen birçok faydayı bize kazandıracaktır. Bir sonraki yazımda çok çekirdekli bir kod nasıl çalıştırılır bu konudan bahsetmeye çalışacağım.

iyi çalışmalar.

CEVAP VER

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.