search
Categories
Sponsors
VirtualMetric Hyper-V Monitoring, Hyper-V Reporting
Archive
Blogroll

Badges
MCSE
Community

Cozumpark Bilisim Portali
Posted in Windows 7, Windows Powershell | No Comment | 3,855 views | 22/05/2009 20:51

Windows 7 ya da Windows Vista kullanıyorsunuz diyelim. İterasyon ile çözmeniz gereken bir problem var. Acaba Matlab kullanmak zorunda mısınız? Powershell varsa tabiki hayır! Windows 7 ile birlikte gömülü olarak gelen Powershell, Matlab gibi programlara olan ihtiyacınızı bir bakıma ortadan kaldırıyor. Bir bakıma diyorum çünkü benim yaptığım işlem sadece iterasyon gerektiren basit matematiksel problemler. Matlab’in kolaylığına ve mükemmelliğine Powershell ile asla erişemezsiniz fakat benim burada yaptığım, “Acaba yüksek matematik gerektirmeyen işlemler için Matlab gerekli mi?” sorusuna cevap aramak.

Matlab üzerinde Eşanjör Projelendirmesi yapmıştım. Şimdi bu projeyi, biraz zaman ayırarak, Powershell üzerinde yapmaya başladım. Peki Powershell neden tercih sebebim olsun ki? Nedeni aslında çok basit. Birincisi Powershell bedava! İkincisi yüklemesi çok kolay. Windows Update ile birlikte yükleyebildiğiniz bir yazılım. Üçüncüsü boyutu çok ufak. Matlab için DVD indirmeniz gerekirken, Powershell’i kurmak için 2 MB’lık bir msi paketi indirmeniz yeterli oluyor. Düşünün ki yazdığınız program, tüm Windows işletim sistemleri üzerinde ek bir programa gerek kalmadan çalışabilsin. Ne güzel değil mi? Böylece kimseye “Sende Matlab var mı?” gibi sorular sormanıza gerek kalmayacak. Belki tek soracağınız, “Windows kullanıyor musun?” olacaktır.

matlab-to-powershell

Windows 7 ile birlikte gelen Powershell Editörü ile Matlab komutlarını Powershell’e çeviyorum. Çevirme işlemi gayet kolay da. Aslında Matlab dili ile Powershell dili arasında pek de bir fark yok. Hatta Powershell bazı yönlerden daha kolay da diyebilirim. İterasyon işlemini, For/while döngülerini Powershell üzerinde rahatça yapabiliyorsunuz. Sadece kök alma işlemi için .NET component’e ihtiyacınız olacak. Fakat kök aldırma işlemini de Powershell üzerinde yapabilirsiniz aslında. Daha önce nasıl kök alınabileceğini anlatmıştım.

1
2
3
4
5
# Ortalama Sicakliklar
$Tmo = ([int]$Tog+[int]$Toc)/2
$Tms = ([int]$Tsg+[int]$Tsc)/2
# Logaritmik Ortalama Sicaklik Farki
$DeltaTm = (([int]$Tsg-[int]$Tog)-([int]$Tsc-[int]$Toc))/[System.Math]::Log(([int]$Tsg-[int]$Tog)/([int]$Tsc-[int]$Toc))

Gördüğünüz gibi Logaritma almak için Log yazacağıma [System.Math]::Log yazmak zorunda kaldım. Bu da çok zor bir iş değil. Sonuçta bedava bir yazılım üzerinde kodunuzu yazıyorsunuz ve tüm kullanıcılarda çalışacak bir program olacak bu. Powershell’de “get-help while -full” şeklinde yazarak, istediğiniz döngüler hakkında ayrıntılı bilgiye sahip olabilirsiniz. Kolay gelsin.