MATLAB 7 ve Kapanma Sorunu

Posted by KaravanaBatu | Posted in Yazılım | Posted on 12-04-2009

MATLAB 7’de karşılaşılan, programın açıldıktan kısa bir süre sonra kendiliğinden kapanması sorununu çözelim:

AMD’nin bazı işlemci modellerinde (64-bit işlemcilerinde) kaynaklanan bu sorunu çözmek için MATLAB7’nin kurulu olduğu dizindeki “blas.spec” adlı dosyaya iki satırlık bir tanımlama metni girmemiz gerekiyor. Bu tanımlama metni, programın (MATLAB) işlemcinizi (CPU) tanıyıp ona göre “.DLL” dosyası (atlas_Athlon.dll) çalıştırmasını sağlıyor. Ama MATLAB, bahsedildiği gibi bir uyumsuzluk (işlemcinizi tanıyamama) olduğunda varsayılan olarak Pentium serisi işlemcilerinin “.DLL” dosyasını işleme sokuyor. Bu da bir çakışmaya sebep oluyor ve program göçüyor.

Read the rest of this entry »

C# içerisinde Matlab fonksiyonlarına değer göndermek (C# passing parameter into Matlab)

Posted by Mahmut Sinecen | Posted in Yazılım | Posted on 02-03-2009

Matlab’ın sağladığı bir diğer özellik .NET builder özelliğinin olması, bunun sayesinde Matlab’da yazdığınız fonksiyon dosyanızı C# içerisinde rahatça kullanmanıza olanak sağlamaktadır. Öncelikle bir fonksiyonu Matlab içerisinde oluşturuyoruz. Bu fonksiyon için isteğiniz parametreleri ekleyip, daha sonra dll dosyası olarak derleme işlemini yapıyorsunuz. Basit bir fonksiyon hazırlanıp C# içerisine aktarımı

http://gulererman.blogspot.com/2008/05/matlab-komutlarn-cda-kullanma.html

sayfasında ayrıntılı olarak bulabilirsiniz. Bizim burada yapmak istediğimiz, fonksiyon içerisine parametre gönderip fonksiyonun bu parametrelere göre işlem yapmasını sağlamak.

Örneğin function ciz(baslangic,bitis) olan bir fonksiyonunuz var, burada baslangic ve bitis değerlerini C# içerisinde oluşturup bu fonksiyona göndermeniz gerekiyor. Bunun için MWArray kütüphanesini kullanmanız gerekiyor, öncelikle C# içerisinde Add Reference ile yeni bir referans ekleyeceksiniz, burada Browse kısmında ekleyeceğiniz dll dosyası

C:\Program Files\MATLAB\R2008a\toolbox\dotnetbuilder\bin\win32\v2.0\MWArray.dll

içerisinde. Bu kütüphaneyi ekledikten sonra using MathWorks.MATLAB.NET.Arrays; parametresini eklemeniz gerekiyor. Daha sonra butona veya atama yapmakistediğiniz işlemin içerisinde,

cizclass cizin = new cizclass();
// m dosyası içindeki ciz fonksiyonunu taşıyın.
MWArray baslangic = 0;
//baslangic değişkeni
MWArray bitis = 180;
cizin.ciz(baslangic,bitis);

fonksiyonunuzun parametrelerine göre değer atayıp çağırma işlemi yapmanız yeterli olacaktır, burada fonksiyon içerisine gönderdiğiniz parametreler string, integer, double, vb. olabilir. Herbirini MWArray olarak belirlemeniz yeterli olacaktır. Programınız bu şekilde sorun çıkarmadan çalışacaktır. Kolay gelsin.