İçindekiler:
- Adım 1: Kod
- Adım 2: Kod Budur, KOPYALAMAYIN VE YAPIŞTIRMAYIN
- Adım 3: Herhangi Bir Sebepten Derleme Yapmazsa
Video: Matlab MEX Dosyası Yapımı: 3 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
Derlenmiş C kodunun Matlab ile nasıl entegre edileceğine ilişkin talimatlar. MEX, MATLAB Yürütülebilir anlamına gelir. MEX dosyaları, derlendiğinde, MATLAB M dosyaları veya yerleşik işlevlerle aynı şekilde MATLAB içinden çalıştırılabilen C veya Fortran kaynak kodundan üretilen dinamik olarak bağlantılı alt rutinlerdir. Harici arayüz işlevleri, MEX dosyaları ve MATLAB arasında veri aktarımı için işlevsellik ve C veya Fortran kodundan MATLAB işlevlerini çağırma yeteneği sağlar. Burada size hızlı bir şekilde kullanışlı bir mex dosyası yapmak için ihtiyacınız olan her şeyi göstereceğim. ihtiyaç:= bir metin editörü= matlab 6.1 veya üzeri (önceki sürümler mex dosyalarını da yapabilir ama biraz farklı formatta olabilir) = matlab'ın kendi c derleyicisi var, ama ben görsel c++ derleyicisini kullandım çünkü bende vardı.
Adım 1: Kod
eklediğim dosyayı indirin: mextest1p0.cpp
cpp, c++ anlamına gelir ………Kod bunu yapar:……… matlab komut isteminden gönderdiğiniz bir sayıyı alır. Matlab'da "merhaba dünya" yazdırır, matlab'a iki argüman, iki elemanlı bir sayı dizisi ve bir dize döndürür, döndürülen sayı dizisinin ilk öğesi 1 + gönderdiğiniz sayı, döndürülen sayı dizisinin ikinci öğesi 2 + gönderdiğiniz numara ………. Bunun nasıl uygulanacağı:………… dosyayı bilgisayarınıza kaydedin matlab'ı başlatın matlab'da dosyanın bulunduğu dizine gidin, ardından üstteki derleme ve yürütme talimatlarını izleyin.cpp dosyası. Bu talimatları buraya yazamam çünkü talimatlar komutları otomatik olarak düzenler ve yanlış görünmesini sağlar. Aşağıdaki resimde kodun çalıştığını görebilirsiniz. "Komut satırı uyarısı" hakkında endişelenmeyin, hiçbir şeyi etkilemiyor gibi görünüyor. Sol tarafta dikkat edin, geçerli dizinde.cpp dosyası bulunur. Sağ tarafta, kodu derlediğimi ve ardından matlab'dan çalıştırdığımı görebilirsiniz. Dosyayı metin düzenleyicinizde okuyun (örneğin pencerelerde not defteri), çok iyi belgelenmiştir ve kendi kendini açıklayıcıdır, koddaki kuralları izleyerek (yani kopyalayıp yapıştırarak ve yaparak) ihtiyacınız olan hemen hemen her şeyi yapabilirsiniz. küçük değişiklikler) ############################################# ######################### …….. NOT…….. Talimatların yaptığı bazı can sıkıcı otomatik düzenleme nedeniyle, kod sonraki sayfa ÇALIŞMAZ, bunu kopyalayıp yapıştırmak yerine eklediğim DOSYAYI İNDİRMEK ZORUNDASINIZ. ################################################# #####################
Adım 2: Kod Budur, KOPYALAMAYIN VE YAPIŞTIRMAYIN
################################################# #####################……….. NOT……..talimatların yaptığı bazı can sıkıcı otomatik düzenleme nedeniyle, bu sayfada görüldüğü gibi kod OLMAYACAKTIR İŞ, bunu kopyalayıp yapıştırmak yerine eklediğim DOSYAYI İNDİRMEK ZORUNDASINIZ.################################ #######################################//Bu leevonk tarafından c++ ile yazılmıştır// bu bir matlab mex dosyası için koddur//kod bir sayı değeri alacak ve iki sayı değeri çıkaracak//iki çıktı numarası giriş numarasından hesaplanır//kod ayrıca bir dize değeri çıkaracak//kod ayrıca "merhaba dünya"#include "mex.h"void mexFunction(int nlhs, mxArray *plhs, int nrhs, mxArray *prhs) {//############ yazdırın ############################//#######--"merhaba dünya" yazdır--### #########//##################################### ###mexPrintf("Merhaba dünya");//################################## #####//#########--#########//############### #########################/ * gelen değerleri tutacak bir dizi değişkeni tanımlayın */double* InValues;/* matlab'dan gönderilen değerleri alın */InValues = mxGetPr(prhs[0]);/* matlab'dan gönderilen bu değerleri kullanmak için InValues yapın [0], InValue[1], vb. kaç değer olduğuna göre. InValues aşağıda kullanılacaktır *///#################################### ##//########--Bir sayı dizisi döndür--########//################## #######################/* matlab'a gönderilecek diziyi bildirin (* onu bir dizi yapar) */double* OutValues;/ * Dönüş argümanı oluştur/ayır, 1x2 (1 satır 2 sütun) Dönüş dizisinin ilk yuvası için Matris (plhs[0]) */plhs[0]=mxCreateDoubleMatrix(1, 2, mxREAL); /* Dönüş argümanına işaretçi getir */OutValues = mxGetPr(plhs[0]); /* dönüş dizisinin ilk yuvasında bulunacak olan OutValues'a değerler atayın, burada OutValues'u hesaplamak için InValues'ları kullanıyoruz */OutValues[0] = InValues[0] + 1;OutValues[1] = InValues[0] + 2;//########################################// ###########--- Bir Dize Döndür--#############//################ #########################/* matlab'a gönderilecek dize değişkenini bildirir */char* str;/* string */str = "güle güle";/* dizeyi dönüş dizilerinin ikinci yuvasına koyun (plhs[1]) */plhs[1]=mxCreateString(str);//######### ##################################//###########--dönüş daha fazla şey--############//################################ ############/* daha fazla öğe döndürmek için yukarıdaki genel kuralları izleyin, ancak öğeleri diğer plhs yuvalarına koyun, plhs[bir sayı] */ }
Adım 3: Herhangi Bir Sebepten Derleme Yapmazsa
Herhangi bir nedenle derlenmiyorsa (olması gerekir, bilgisayarımda iyi çalışıyor) bu kaynakları görüyorsanız, onlar benim öğrendiğim yer. Küçük kusurları var (bazı eski, işlevsel olmayan dilbilgisi vb. kullanın) ancak ikisi arasında ileri geri giderseniz, çalışan bir şeyi bir araya getirebilmelisiniz.https://web.ccr.jussieu.fr/ccr/ Documentation/Calcul/matlab5v11/docs/00009/009a1.htmhttps://cnx.org/content/m12348/latest/
Önerilen:
ISP Olarak Arduino -- AVR'de Hex Dosyası Yaz -- AVR'de Sigorta -- Programcı Olarak Arduino: 10 Adım
ISP Olarak Arduino || AVR'de Hex Dosyası Yaz || AVR'de Sigorta || Arduino As Programmer:……………………………Daha fazla video için lütfen YouTube kanalıma ABONE OLUN……..Bu makale isp olarak arduino ile ilgili. Hex dosyası yüklemek istiyorsanız veya sigortanızı AVR'ye ayarlamak istiyorsanız, bir programlayıcı satın almanıza gerek yok, yapabilirsiniz
Mikrofonlu Ev Yapımı Tripod (Bozuk Mikrofon Ile El Yapımı Tripod): 11 Adım
Mikrofonlu Ev Yapımı Tripod (Bozuk Mikrofon Ile El Yapımı Tripod): Bozulmuş Mikrofon ile kameranıza tripod yapabilirsiniz.. Tripod mikrofon ile kameranızı yapabilirsiniz
Exe Dosyası Nasıl Yapılır: 3 Adım
Exe Dosyası Nasıl Yapılır: Merhaba, size çalıştırılabilir dosya yapmayı öğreteceğim. (.exe dosyaları olarak da bilinir) Bu, hiçbir kodlama gerektirmez. Sadece sahte yükleyici. Linkler burada verilecektir: InstallForge O halde lafı fazla uzatmadan size bir.exe dosyasının nasıl oluşturulacağını öğreteceğim
Bluetooth Adaptörü Yapımı Pt.2 (Uyumlu Hoparlör Yapımı): 16 Adım
Bir Bluetooth Adaptörü Yapma Pt.2 (Uyumlu Bir Hoparlör Yapma): Bu talimatta, size eski bir hoparlörü Bluetooth uyumlu hale getirmek için Bluetooth Adaptörümü nasıl kullanacağınızı göstereceğim. bir Bluetooth Adaptörü"; Devam etmeden önce bunu yapmanızı öneririm.C
Yapımı Kolay Gerçek Ev Yapımı Bir Bilgisayar: Z80-MBC2!: 9 Adım (Resimlerle)
Yapması Kolay Gerçek Ev Yapımı Bir Bilgisayar: Z80-MBC2!: Bir bilgisayarın nasıl çalıştığını ve "harici şeylerle" nasıl etkileşime girdiğini merak ediyorsanız, günümüzde Arduino veya Raspberry ve diğerleri gibi oynamaya hazır birçok tahta var. Ama bu panoların hepsi aynı "limit"e sahip… selamlar