Öncelikle Matlab’da basit bir .m file oluşturalım ve ismi de
ciz olsun. Şu kodları içine yazalım ve kaydedelim.
function ciz()
t=-2:0.001:2;
m=sin((2*pi).*t);
plot(t,m);
grid on;
end
Sonra Command Window
penceresine deploytool yazalım ve enter'a basalım.
Deployment Tool penceresi açılacaktır.
Bu pencereden ilk menüden yeni bir proje yaratıyoruz.
Biz .Net’i seçiyoruz. İsmini ve nereye kaydedileceğini
belirliyoruz. Sonra OK butonuna
tıklıyoruz. Deployment penceremizde dosyamız oluştu. Projemize sağ tıklıyoruz Add File diyoruz ve kaydettiğimiz .m
file dosyasını bulup Aç’a diyoruz.
Daha sonra da Deployment
Tool penceresindeki Save butonuna
tıklıyoruz. Bunları yaptıktan sonra yine aynı deployment tool
penceresindeki setting butonuna
tıklıyoruz. Açılan pencereden General
sekmesindeki Compiler Options File ayarına geliyoruz. Burada browser butonuna
tıklayıp kaydettiğimiz .prj uzantılı dosyayı seçiyoruz. Ve arkasında Ok diyoruz
penceremizi kapatıyoruz. Brada son olarak ise deployment tool penceresindeki build
the project sekmesine tıklıyoruz ve projemizin dll dosyasını oluşturuyoruz.
Bu işlem bilgisayarınıza bağlı olarak uzun sürebilir.
Şimdi dll dosyamız hazır. Visual Studio’da bir tane form
uygulaması açıyoruz ve bir tane buton bir tane de label ekliyoruz. Daha sonra References’a sağ tıklayıp Add Reference
diyoruz. İlk olarak matlab’ı kurduğumuz dizindeki MWArray.dll dosyasını eklemeliyiz. Benim bilgisayarımdaki
yolu:
D:\Program Files\MATLAB\R2008a\toolbox\dotnetbuilder\bin\win32\v2.0
Sonra kendi
oluşturduğumuz dll’i ekliyoruz. Deployment
Tool’da oluşturduğumuz projeyi kaydettiğimiz yerde bir tane de klasör
oluşmuştur. O klasörün içinde distrib adında
oluşan klasörün içindeki dll dosyamızı seçiyoruz ve tamam deyip projemize
ekliyoruz. Daha sonra using kısmına
using
MathWorks.MATLAB.NET.Arrays;
using
Untitled1;
diyerek eklediğimiz dll dosyalarını tanımlıyoruz. Butonun
çift tıklayıp altına şu kodları yazıyoruz:
Untitled1class
obj = new Untitled1class();
obj.ciz();
daha sonra projemizi çalıştırıp butona tıkladığımızda
grafiğimiz açılacaktır.
Merhaba;
YanıtlaSilBahsettiğiniz yöntemle bir fonksiyonu çevirerek kullanmak istiyorum fakat Visual Studio üzerinde kodu çağırdığım yerde "An unhandled exception of type 'System.TypeInitializationException' occurred in ..." şeklinde bir hata alıyorum. Birkaç yazı daha okudum ama tamamen aynı adımları uyguladığıma eminim. Aradaki tek fark benim Windows 8.1 ve MATLAB 2013a kullanıyor olmam. Sorun bundan kaynaklanıyor olabilir mi acaba? Eğer böyleyse bir çözüm öneriniz var mıdır?
Teşekkürler
Mert beyin aldığı hatayi ben de alıyorum yok mu bir çözüm benim de win 8.1 matlab da r2014a
YanıtlaSilMerhaba;
YanıtlaSilMert Beyin aldığı hatanın çözümü;
Visual Studio Projesinde Proje özelliklerinden "Derleme" seçeneklerinden Hedef platform "X86" olarak seçildiğinde hata ortadan kalkacaktır.
İyi çalışmalar
benimde windows 8.1 matlab2015 bende de aynı hata oluyo ve x86 yapmam düzeltmedi nasıl düzeltebilirim
YanıtlaSilMerhaba. C#da yazılmış görüntü işleme projemin içine matlab in bir fonksiyonunu çekmem lazım. Ancak fonksiyonu çektiğimde program çalışırken matlabdaki işlenmiş şekli yukarıdaki gibi gözükmemesi lazım bu mümkün mü acaba ?
YanıtlaSilMerhaba arkadaşlar,
YanıtlaSilHayatımdaki bazı gelişmelerden dolayı uzak kaldım blog'umdan.. Kusura bakmayın. O hatanın çözümü için matlab sürümlerini değiştirmeniz gerekiyor. Ben kodlarımı çalıştırabilmek için 2 3 farklı sürüm denedim zamanında. Şu anda o alanda çalışmadığım için pek bilgim yok. Ayrıca diğer konuya gelince PLOT komutunu silerseniz istediğiniz olur sanırım.
Hocam benim elimde bir fonksiyon var. Ben bu fonksiyonun türevini matlab ile almak istiyorum. Nasıl yapabilirim?
YanıtlaSil