رفتن به مطلب

پست های پیشنهاد شده

  • 2 years later...
  • پاسخ 63
  • ایجاد شد
  • آخرین پاسخ

بهترین ارسال کنندگان این موضوع

بهترین ارسال کنندگان این موضوع

پست های محبوب

متلب با استفاده از فایل های MEX می تونه برنامه های نوشته شده به زبان های ++C/C و Fortran رو اجرا کنه، MEX از MATLAB Executable گرفته شده، شامل کدها و توابع کامپایل شده ی ++C/C و Fortran هستن که همانن

فایل jpeg_read.mexw32 چی؟ اینم برا لینوکسه؟ حالا که win من 64 بیتی، نمیشه از این استفاده کرد؟ حتما باید 32 باشه؟

سلام من برای نصب کامپایلرها

اول ویژوال استودیو 2017 رو نصب کردم

بعد Microsoft .NET Framework 4.5.2

 

دانلود کردم و نصب کردم

ولی بعضی گزینه ها مثل c++ , netdevelopment غیر فعال هستند و در آخر نصب failed میشه

گفتین net framework ها باید اول حذف بشن بعد از نصب sdk دوباره نصب بشن

ویزوال استودیو 2017 خودش چند ورژن نت فریم ورک رو نصب می کنه

من سیستمم 8.1 و متلب 2014a هست

الان کل نت فریم ورک ها رو حذف کنم؟

تصویر فایل های نصب شده تو سیستم رو فرستادم

میشه بفرمایید کدوم رو حذف کنم

یک سوال دیگه ایا موقع نصب باید اینترنت وصل باشه؟

ممنونم

6.jpg

لینک ارسال
  • 6 months later...
در در 30 تیر 1393 در 14:41، Imaaan گفته است :

 

gij4x8av40pnjw4imsyh.png

 

 

 

متلب با استفاده از فایل های MEX می تونه برنامه های نوشته شده به زبان های ++C/C و Fortran رو اجرا کنه، MEX از MATLAB Executable گرفته شده، شامل کدها و توابع کامپایل شده ی ++C/C و Fortran هستن که همانند M-fileها و فانکشن های Build-in متلب از داخل Command Window قابل اجرا هستن.

استفاده از MEX فایل ها دو مزیت می تونه داشته باشه:

 

 

 

  1. استفاده از کد های ++C/C و Fortran موجود، بدون نیاز به نوشتن دوبارشون داخل متلب و تبدیلشون به M-file (البته برای تبدیل به MEX هم باید یه تغییراتی توی کدنویسی فایل ها انجام بشه)
  2. حل مشکل سرعت در عملیات های تکراری (مثل حلقه های for)، کاهش زمان اجرای محاسبات کند با استفاده از نوشتن برنامه به زبان های ++C/C و Fortran و تبدیلشون به MEX. حتی خود شرکت Mathworks هم یکی از کارهایی که برای افزایش سرعت اجرای بعضی از فانکشن های Build-in متلب استفاده کرده، همین هست.

 

برای تبدیل کدهای ++C/C و Fortran به MEX نیاز به کامپیایلر همین زبان ها داریم، حتی در ورژن های جدید متلب بعضی از بلوک های سیمولینک مثل Matlab Function بدون کامپالر قابل استفاده نیستن، برای معرفی یه کامپایلر به متلب می تونیم از دستور MEX استفاده کنیم، داخل Command Window می نویسیم:

 

:100: البته این صحبت ها بیشتر در مورد متلب 64 بیتی هستش، توی ورژن های 32 بیتی همزمان با نصب متلب یه کامپایلر هم نصب میشه، که متلب برای بیشتر کارها می تونه ازش استفاده کنه.


mex [color=#0000ff]-setup[/color]
 

 

بعد از اینکه این دستور رو اجرا می کنیم، متلب کامپایلر هایی که روی سیستم نصب هست رو لیست می کنه. مثلا اگه از ++Visual Studio C استفاده می کنین، توی این لیست نشون داده میشه. با وارد کردن عدد کنار هر کدوم از این کامپایلرهای لیست شده، می تونیم اون رو به عنوان کامپایلری که متلب ازش استفاده کنه انتخاب کنیم. در ادامه هم از ما برای تایید این کامپالر سوال می کنه، که باید تایید کنیم. در آخر هم یه چنین عبارتی رو بهمون نشون میده:

 

 

MEX configured to use 'Microsoft Windows SDK 7.1 ©' for C language compilation.

Warning: The MATLAB C and Fortran API has changed to support MATLAB variables with more than 2^32-1 elements. In the near future

 

you will be required to update your code to utilize the

new API. You can find more information about this at:

 

http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.

 

 

 

 

اینجا کامپایلر مورد استفاده متلب Microsoft Windows SDK 7.1 مشخص شده.

اما در صورتی که کامپایلری روی سیستم نصب نباشه چیکار کنیم، این رو توی پست بعد توضیح میدم.

سلام.

اشاره کردید که موقع استفاده مستقیم از کد های سی توی متلب باید سی رو به مکس تبدیل کنیم که برای تبدیل به MEX هم باید یه تغییراتی توی کدنویسی فایل ها انجام بشه. یه چیزایی توی mathwork راجع به c MEX API خوندم که متاسفانه خیلی متوجه نشدم.می خواستم ببینم این تغییرات چی هستند و از کجا میتونم یه مطلب آموزشی خوب در این مورد پیدا کنم؟ چون کد سی که میخوام تبدیل کنم خیلی پیچیده است و شامل کلی هدر و توابع مختلف میباشد.  

متشکرم.

 

لینک ارسال
  • 1 year later...
در در 30 تیر 1393 در 14:41، Imaaan گفته است :

 

gij4x8av40pnjw4imsyh.png

 

 

 

متلب با استفاده از فایل های MEX می تونه برنامه های نوشته شده به زبان های ++C/C و Fortran رو اجرا کنه، MEX از MATLAB Executable گرفته شده، شامل کدها و توابع کامپایل شده ی ++C/C و Fortran هستن که همانند M-fileها و فانکشن های Build-in متلب از داخل Command Window قابل اجرا هستن.

استفاده از MEX فایل ها دو مزیت می تونه داشته باشه:

 

 

 

  1. استفاده از کد های ++C/C و Fortran موجود، بدون نیاز به نوشتن دوبارشون داخل متلب و تبدیلشون به M-file (البته برای تبدیل به MEX هم باید یه تغییراتی توی کدنویسی فایل ها انجام بشه)
  2. حل مشکل سرعت در عملیات های تکراری (مثل حلقه های for)، کاهش زمان اجرای محاسبات کند با استفاده از نوشتن برنامه به زبان های ++C/C و Fortran و تبدیلشون به MEX. حتی خود شرکت Mathworks هم یکی از کارهایی که برای افزایش سرعت اجرای بعضی از فانکشن های Build-in متلب استفاده کرده، همین هست.

 

برای تبدیل کدهای ++C/C و Fortran به MEX نیاز به کامپیایلر همین زبان ها داریم، حتی در ورژن های جدید متلب بعضی از بلوک های سیمولینک مثل Matlab Function بدون کامپالر قابل استفاده نیستن، برای معرفی یه کامپایلر به متلب می تونیم از دستور MEX استفاده کنیم، داخل Command Window می نویسیم:

 

:100: البته این صحبت ها بیشتر در مورد متلب 64 بیتی هستش، توی ورژن های 32 بیتی همزمان با نصب متلب یه کامپایلر هم نصب میشه، که متلب برای بیشتر کارها می تونه ازش استفاده کنه.


mex [color=#0000ff]-setup[/color]
 

 

بعد از اینکه این دستور رو اجرا می کنیم، متلب کامپایلر هایی که روی سیستم نصب هست رو لیست می کنه. مثلا اگه از ++Visual Studio C استفاده می کنین، توی این لیست نشون داده میشه. با وارد کردن عدد کنار هر کدوم از این کامپایلرهای لیست شده، می تونیم اون رو به عنوان کامپایلری که متلب ازش استفاده کنه انتخاب کنیم. در ادامه هم از ما برای تایید این کامپالر سوال می کنه، که باید تایید کنیم. در آخر هم یه چنین عبارتی رو بهمون نشون میده:

 

 

MEX configured to use 'Microsoft Windows SDK 7.1 ©' for C language compilation.

Warning: The MATLAB C and Fortran API has changed to support MATLAB variables with more than 2^32-1 elements. In the near future

 

you will be required to update your code to utilize the

new API. You can find more information about this at:

 

http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.

 

 

 

 

اینجا کامپایلر مورد استفاده متلب Microsoft Windows SDK 7.1 مشخص شده.

اما در صورتی که کامپایلری روی سیستم نصب نباشه چیکار کنیم، این رو توی پست بعد توضیح میدم.

این دستوری که گفتین توی متلب بزنین رو وقتی من میزنم .این ارور رو میده

Error using mex
Not enough input arguments.
لینک ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • اضافه کردن...