matlab komutlarını c# da kullanma matlab c# entegrasyonu erman güler etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
matlab komutlarını c# da kullanma matlab c# entegrasyonu erman güler etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

11 Mayıs 2008 Pazar

MATLAB komutlarını c# 'da kullanma

C#’da MATLAB komutlarını kullanma
MATLAB, mühendislik, matematik ve finans gibi alanlarda kullanılan gelişmiş bir yazılım. Bu programı daha önce kullanmışsanız yetenekleri hakkında bir fikir sahibisinizdir. Web sitesi www.mathworks.com ‘dur. Bu konuda 3 tane adım adım halinde anlatan yazı yazdım. İlk yazı, bir matlab m fonksiyonunu kullanarak c# içinden çağırarak kullanmak. İkincisi değer döndüren bir matlab fonksiyonunu kullanarak c# içine bu değerleri almak daha sonra yeniden başka bir m fonksiyonuna göndermek. (Bu konu mwarray sınıfı üzerine yoğunlaşarak anlatmaktadır). Son konu ise oluşturduğunuz c# programlarını başka bilgisayarlarda kullanabilmeniz için gereken package işlemlerini anlatmakta. Zira c# içinde kullandığınız matlab komutları sadece geliştirme yaptığınız bilgisayarda çalışabilmekte. Diğer bilgisayarlarda kullanbilmek için matlab fonksiyonlarını package dosyası haline getirip c# projeniz ile birlikte dağıtmanız gerekir.

Adım adım matlab komutlarını c# da kullanma(c# matlab entegrasyon u)
Matlab’ın fonksiyonlarını matlab dışında da kullanmak matlab builder ile mümkün. Matlab builder , matlab ile birlikte gelen bir araç. Matlab’ın m fonksiyonlarını diğer programlama dillerinde kullanabilmenizi sağlıyor. Hatta bu programı kullanarak exc ell add-inn’leri hazırlayarak matlab fonksiyonlarını Excel içinden dahi kullanabilirsiniz. Builder’ın bir başka özelliği ise oluşturduğunuz programları package’layarak başka bilgisayarlarda telif sorunu olmadan kullanabilmeniz. Düşünsenize MAtlab dahi yüklü olmayan bir bilgisyarda bütün matlab fonksiyonlarını kullanabilirsiniz.
İşte şimdi adım adım bir örnek yapalım hem de grafik çizdiren bir örnek.
1. C:\ dizini içine matlabc isimli bir klasör açın.
2. Şimdi Matlab programını açın. Matlab’ı c:\matlabc klasörünü gösterecek şekilde ayarlayın.

3. Yeni bir m file dosyası açın. İçine

function ciz()
x = -pi:.1:pi;
y = sin(x);
plot(x,y)

yazın ve ciz.m ismiyle kaydedin. Fonksiyonu matlab ekranında deneyebilirsiniz komut satırına ciz yazın. Bir sinüs grafiğinin çizildiğini göreceksiniz.

4. Bu ciz.m dosyasını şimdi bir .net class’ına çeviriceğiz. Bunun için matlab da deploytool yazın. Eğer matlab’ın 6.5 gibi eski bir sürümünü kullanıyorsanız burada comtool yazmanız gerekir. Deploytool aracının görüntüsü şu şekildedir.


5. Eğer daha önce deploytool komutunu kullanmadıysanız, Matlab derleme için kullanacağı derleyiciyi belirlemenizi ister. Bunun için komut satırına mbuild -setup yazmanız gerekir. Matlab bir compiler seçmenizi ister. 1 numaralı lcc derleyicisini seçin ve onaylayarak gidin. Matlab Hata verebilir, endişelenmeyin. Benzer bir hatayla karşılaşmıştım. Bu hatayı dert etmeyin derleme işlemi sırasında prf isimli bir matlab seçenekler dosyasını kullanarak bu sorun giderilecektir. Adımları takip etmeye devam edin.
6. Deployment tool üzerindeki New deployment Project düğmesine tıklayarak aşağıdaki pencereyi görüntüleyin.

7. Pencere bu şekilde olacak şekilde ayarlamaları yapın ve OK düğmesine tıklayın. Böylece deployment projesi oluşturmuş oluyorsunuz. Sıradaki aşama kullanmak istediğiniz .m file’ları proje içine dahil etmek
8. Add File düğmesine tıklayarak ciz.m dosyasını alın. Matlabclass klasörü altına alındığını göreceksiniz. İsterseniz burada 1’den fazla .m dosyasını da projenize alabilirsiniz.
9. Open Project Settings düğmesine tıklayın. Seçenekler penceresi açılacaktır.
10. Açılan pencerede Compiler Options File alanına Browse diyerek matlab.prf dosyasını gösterin. Bu işlemi bir defa yapmanız yeterlidir. Derleme zamanındaki hatanın giderilmesi için kullanılır.

11. OK düğmesine tıklayarak pencereyi kapatın. Build the Project düğmesine tıklayarak projeyi compile edin. (Not: birkaç dakika sürebilir.)
12. Derleme işlemi hatasız biterse C:\matlabc\matlabc\distrib konumuna 2 tane dosya gelecektir. Bunlardan dll dosyası c# projesinde kullanacağınız class dosyası.

13. Visual studio programını açın. Ve bir c# uygulaması oluşturun.(oluşturduğunuz class’ı asp.net sayfalarında da kullanabilirsiniz.)
14. Projenize add referrence diyerek oluşturduğunuz bu dll dosyasını gösterin.


15. Projeye bir düğme ekleyin şu kodu oluşturun.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using matlabc; // ekleyin

namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
// classımızın matcl isimli olarak türetin.
matlabcclass matcl = new matlabcclass();
// ve tabiki m dosyası içindeki ciz fonksiyonunu taşıyın.
matcl.ciz();
}
}
}
16. Projenizi çalıştırın ve düğmeyi tıklayın. Matlab grafiğinin geldiğini göreceksiniz. Etkileyici değil mi?