آموزش متلب (MATLAB)
دسته بندی ( ۵۴۳ آموزش )
نمایش دسته بندی ها (۵۴۳ آموزش)
مباحث اولیه، در متلب (MATLAB)
مباحث اولیه، در متلب (MATLAB) 8
بردارها (Vector) و ماتریس ها (Matrix)، در متلب (MATLAB)
بردارها (Vector) و ماتریس ها (Matrix)، در متلب (MATLAB) 75
دستورهای ساده و پرکاربرد، در متلب (MATLAB)
دستورهای ساده و پرکاربرد، در متلب (MATLAB) 4
توابع (Function)، در متلب (MATLAB)
توابع (Function)، در متلب (MATLAB) 12
متغیرها (Variable)، در متلب (MATLAB)
متغیرها (Variable)، در متلب (MATLAB) 12
m-file ها، در متلب (MATLAB)
m-file ها، در متلب (MATLAB) 2
نمایش اطلاعات در خروجی (پنجره Commands)، در متلب (MATLAB)
نمایش اطلاعات در خروجی (پنجره Commands)، در متلب (MATLAB) 5
رسم شکل ها، در متلب (MATLAB)
رسم شکل های دو بعدی، در متلب (MATLAB)
رسم شکل های دو بعدی، در متلب (MATLAB) 19
رسم شکل های سه بعدی، در متلب (MATLAB)
رسم شکل های سه بعدی، در متلب (MATLAB) 13
رسم چند شکل با هم، در متلب (MATLAB)
رسم چند شکل با هم، در متلب (MATLAB) 6
رسم شکل ها و نمودارهای خاص، در متلب (MATLAB)
رسم شکل ها و نمودارهای خاص، در متلب (MATLAB) 12
رسم شکل های هندسی ساده، در متلب (MATLAB)
رسم شکل های هندسی ساده، در متلب (MATLAB) 8
تعیین ویژگی های خط های رسم شده در شکل، در متلب (MATLAB)
تعیین ویژگی های خط های رسم شده در شکل، در متلب (MATLAB) 6
تعیین ویژگی های محورهای مختصات شکل، در متلب (MATLAB)
تعیین ویژگی های محورهای مختصات شکل، در متلب (MATLAB) 12
نمایش متن در شکل (عنوان، توضیح و ...)، در متلب (MATLAB)
نمایش متن در شکل (عنوان، توضیح و ...)، در متلب (MATLAB) 5
تعیین ویژگی های رنگ های (Color) به کار رفته در رسم شکل، در متلب (MATLAB)
تعیین ویژگی های رنگ های (Color) به کار رفته در رسم شکل، در متلب (MATLAB) 3
تعیین یا تغییر ویژگی های شکل (قبل از رسم شکل)، در متلب (MATLAB)
تعیین یا تغییر ویژگی های شکل (قبل از رسم شکل)، در متلب (MATLAB) 13
تعیین یا تغییر ویژگی های شکل (بعد از رسم شکل)، در متلب (MATLAB)
تعیین یا تغییر ویژگی های شکل (بعد از رسم شکل)، در متلب (MATLAB) 9
ذخیره شکل ها به صورت فایل (فایل عکس)، در متلب (MATLAB)
ذخیره شکل ها به صورت فایل (فایل عکس)، در متلب (MATLAB) 2
کار با شکل رسم شده، در متلب (MATLAB)
کار با شکل رسم شده، در متلب (MATLAB) 1
پردازش تصویر و کار با عکس ها، در متلب (MATLAB)
پردازش تصویر و کار با عکس ها، در متلب (MATLAB) 15
ساخت انیمیشن، در متلب (MATLAB)
ساخت انیمیشن، در متلب (MATLAB) 1
متغیرها و معادلات سمبلیک (Symbolic)، در متلب (MATLAB)
متغیرها و معادلات سمبلیک (Symbolic)، در متلب (MATLAB) 4
رشته ها (String) و آرایه های رشته ای (String Array) و کاراکترها (Character) و آرایه های کاراکتری (Character Array) (متن ها)، در متلب (MATLAB)
رشته ها (String) و آرایه های رشته ای (String Array) و کاراکترها (Character) و آرایه های کاراکتری (Character Array) (متن ها)، در متلب (MATLAB) 42
حلقه ها (for و while)، در متلب (MATLAB)
حلقه ها (for و while)، در متلب (MATLAB) 3
آرایه ها (Array)، در متلب (MATLAB)
آرایه ها (Array)، در متلب (MATLAB) 4
آرایه های سلولی (Cell Array)، در متلب (MATLAB)
آرایه های سلولی (Cell Array)، در متلب (MATLAB) 12
متغیرهای منطقی (Logical) و آرایه های منطقی (Logical Array)، در متلب (MATLAB)
متغیرهای منطقی (Logical) و آرایه های منطقی (Logical Array)، در متلب (MATLAB) 2
ساختارها (Structure) و آرایه های ساختاری (Structure Array)، در متلب (MATLAB)
ساختارها (Structure) و آرایه های ساختاری (Structure Array)، در متلب (MATLAB) 3
جدول ها (Table)، در متلب (MATLAB)
جدول ها (Table)، در متلب (MATLAB) 11
جدول های زمانی (TimeTable)، در متلب (MATLAB)
جدول های زمانی (TimeTable)، در متلب (MATLAB) 1
درخت ها (Tree)، در متلب (MATLAB)
درخت ها (Tree)، در متلب (MATLAB) 1
پایگاه داده SQLite ، در متلب (MATLAB)
پایگاه داده SQLite ، در متلب (MATLAB) 0
دستورات شرطی (if و else و switch و ...)، در متلب (MATLAB)
دستورات شرطی (if و else و switch و ...)، در متلب (MATLAB) 2
خطاهای رایج، در متلب (MATLAB)
خطاهای رایج، در متلب (MATLAB) 2
برنامه نویسی شیء گرا (Object Oriented Programming) ، در متلب (MATLAB)
برنامه نویسی شیء گرا (Object Oriented Programming) ، در متلب (MATLAB) 1
سیمولینک (Simulink)، در متلب (MATLAB)
سیمولینک (Simulink)، در متلب (MATLAB) 5
GUI و واسطه های گرافیکی، در متلب (MATLAB)
GUI و واسطه های گرافیکی، در متلب (MATLAB) 7
فایل ها (File) و پوشه ها (Folder)، در متلب (MATLAB)
فایل ها (File) و پوشه ها (Folder)، در متلب (MATLAB) 18
تاریخ و زمان، در متلب (MATLAB)
تاریخ و زمان، در متلب (MATLAB) 19
توقف موقتی یا کامل برنامه، در متلب (MATLAB)
توقف موقتی یا کامل برنامه، در متلب (MATLAB) 4
بردارها و ماتریس های خاص، در متلب (MATLAB)
بردارها و ماتریس های خاص، در متلب (MATLAB) 3
توابع خاص، در متلب (MATLAB)
توابع خاص، در متلب (MATLAB) 2
حافظه (Memory)، در متلب (MATLAB)
حافظه (Memory)، در متلب (MATLAB) 3
برنامه های آماده برای دانلود، در متلب (MATLAB)
برنامه های آماده برای دانلود، در متلب (MATLAB) 1
Excel و متلب (MATLAB)
Excel و متلب (MATLAB) 2
راهنما (Help)، در متلب (MATLAB)
راهنما (Help)، در متلب (MATLAB) 2
مباحث عمومی، در متلب (MATLAB)
مباحث عمومی، در متلب (MATLAB) 19

پردازش موازی (Parallel Computing) در متلب

نرم افزار متلب، این امکان را به وجود آورده است که در کامپیوترهای دارای پردازنده (CPU) چند هسته ای، از پردازش موازی (Parallel Computing) استفاده نماییم. در این مبحث آموزشی، قصد داریم که نحوه نوشتن کدهای متلب، برای پردازش موازی کدها را شرح بدهیم.

اگر بخواهیم کدهای متلب مورد نظرمان، به صورت موازی پردازش شوند (Parallel Computing)، باید شکل کلی کدها به صورت زیر باشد :


matlabpool('open',2);
% your code
matlabpool('close');

که در آن، به جای عبارت % your code ، باید کدهای متلب مورد نظر خود را بنویسید. به عدد 2 که درون پرانتز اولین دستور matlabpool نوشته شده است، دقت کنید. این عدد، تعداد هسته هایی (cores) را مشخص کرده است که قصد دارید توسط آنها، کدها به صورت موازی پردازش شوند. بنابراین مثلا اگر کامپیوتر شما دارای پردازنده (CPU) چهار هسته ای است، شما باید، حداکثر، عدد 4 را به جای آن بنویسید.

همچنین توجه داشته باشید که شما می توانید تعیین کنید که همه کدها یا یک یا چند بخش دلخواه از کدهای برنامه متلب خود را، به صورت موازی، پردازش نمایید، بنابراین تنها کافی است که آن بخش های مورد نظرتان از کدها را در میان دو عبارتی که در بالا به کار بردیم، قرار بدهید.

به مثال زیر توجه کنید :

مثال

در ابتدا کدی را به صورت معمولی (بدون پردازش موازی) می نویسیم و سپس همان را با پردازش موازی اجرا می کنیم و همچنین زمان اجرای دستورات را هم با دو دستور tic و toc محاسبه می کنیم تا ببینیم که پردازش موازی، تا چه حد در سریعتر اجرا شدن کدهای برنامه، تاثیر دارد.

برنامه ای شامل دو حلقه for متوالی می نویسیم، البته به صورت معمولی و بدون استفاده از پردازش موازی :


clear all
close all
clc

tic
x=0;
for nn=1:1000
    x=nn^5;
end
x

y=0;
for mm=1:1000
    y=mm^5;
end
y
toc

نتیجه :


x =

  1.0000e+015


y =

  1.0000e+015

Elapsed time is 0.005328 seconds.

مشاهده می کنید که زمان پردازش دو حلقه for ، برابر 0.005328 ثانیه بوده است.

حالا این بار، از پردازش موازی استفاده می کنیم تا ببینیم تا چه حد، زمان پردازش کدها کاهش می یابد (البته شروع و پایان خود پردازش موازی، چند ثانیه ای طول می کشد، ولی این میزان، برای برنامه های بزرگ که مد نظر اکثر کاربران است، بسیار ناچیز می باشد) :


clear all
close all
clc


matlabpool('open',2); % start of Parallel Computing
tic

x=0;
for nn=1:1000
    x=nn^5;
end
x

y=0;
for mm=1:1000
    y=mm^5;
end
y

toc
matlabpool('close'); % end of Parallel Computing

نتیجه :


Starting matlabpool using the 'local' configuration ... connected to 2 labs.

x =

  1.0000e+015


y =

  1.0000e+015

Elapsed time is 0.002837 seconds.
Sending a stop signal to all the labs ... stopped.

این بار، زمان پردازش دو حلقه for ، برابر با 0.002837 ثانیه شده است که از عدد قبلی (پردازش معمولی، پردازش سری)، کمتر است (تقریبا نصف).

نکته

دقت کنید که در مثال بالا، تنها دو حلقه for ، به طور موازی با هم اجرا می شوند، اما کدهای درون هر حلقه for ، به طور موازی اجرا نخواهند شد (منظور این است که مثلا اگر حلقه for دارای پارامتری از 1 تا 1000 است، این 1000 بار اجرا شدن حلقه، به صورت موازی نخواهد بود، بلکه به صورت پشت سرهم و سری است).

اما شاید بخواهیم که دستورات درون حلقه for نیز به صورت موازی اجرا گردند، برای این منظور، دستور parfor در متلب در نظر گرفته شده است. دقت کنید که برای استفاده از این دستور، باید هر گام (مرحله) از اجرای حلقه، از دیگر گام ها (مراحل)، مستقل باشد. مثلا اگر در همان مثال قبل، دستورات for را به parfor تبدیل کنیم، جوابی غیر منتظره خواهیم گرفت، زیرا در هر گام (مرحله)، مقدار جدیدی برای متغیر x یا y در نظر گرفته می شود، بنابراین یک متغیر، در گام های مختلف اجرای حلقه، مقادیر متفاوت خواهد داشت، بنابراین گام ها از هم مستقل نیستند. پس نباید برای آن، پردازش موازی به کار ببریم.

برای درک بهتر این موضوع، به مثال زیر توجه کنید :

مثال

در همان مثال قبل، به جای دستور for ، از دستور parfor استفاده می کنیم :


clear all
close all
clc

matlabpool('open',2); % start of Parallel Computing
tic

x=0;
parfor nn=1:1000
    x=nn^5;
end
x

y=0;
parfor mm=1:1000
    y=mm^5;
end
y

toc
matlabpool('close'); % end of Parallel Computing

نتیجه :


Starting matlabpool using the 'local' configuration ... connected to 2 labs.

x =

     0


y =

     0

Elapsed time is 0.594762 seconds.
Sending a stop signal to all the labs ... stopped.

مطمئنا انتظار چنین پاسخی را نداشتید. این پاسخ به این دلیل است که گام های اجرای حلقه، از یکدیگر مستقل نمی باشند.

اکنون، مثالی را برای parfor می نویسیم که گام های حلقه، از هم مستقل باشند (تعداد گام ها را کمتر کردیم تا نتیجه راحتتر قابل نمایش باشد) :

مثال

clear all
close all
clc

matlabpool('open',2); % start of Parallel Computing
tic

x=zeros(1,10);
parfor nn=1:10
    x(1,nn)=nn^5;
end
x

y=zeros(1,10);
parfor mm=1:10
    y(1,mm)=mm^5;
end
y

toc
matlabpool('close'); % end of Parallel Computing

نتیجه :


Starting matlabpool using the 'local' configuration ... connected to 2 labs.

x =

  Columns 1 through 7

           1          32         243        1024        3125        7776       16807

  Columns 8 through 10

       32768       59049      100000


y =

  Columns 1 through 7

           1          32         243        1024        3125        7776       16807

  Columns 8 through 10

       32768       59049      100000

Elapsed time is 0.676398 seconds.
Sending a stop signal to all the labs ... stopped.

همین نتیجه را انتظار داشتیم. در این مثال، x و y ، هر کدام دارای 10 عنصر هستند، بنابراین، مثلا اگر دستورات حلقه x ، به صورت موازی اجرا گردند، 10 گام آن، در هم تداخل ندارند، زیرا هر بار، یک عنصر متفاوت از x ، مقداردهی می شود (هیچ دو گامی نیست که در آنها، یک عنصر مشترک، مقداردهی شود).

نکته

یک سوال مهم، این است که آیا اگر یک تابع را به صورت m-file تعریف کنیم و سپس در یک برنامه متلب، دو بار به آن ارجاع دهیم و برنامه به صورت موازی اجرا شود، آیا عملکرد برنامه صحیح خواهد بود ؟

حال پاسخ این سوال را، با یک مثال، برای شما روشن خواهم کرد :

ابتدا یک تابع با نام my_function می سازیم (تابع به صورت m-file)، که کدهای آن به صورت زیر می باشد :


function [x] = my_function(x)
parfor nn=1:10
    x(1,nn)=nn^5;
end

این کدها را درون یک m-file نوشته ایم و سپس آن را با نام my_function ذخیره نموده ایم. همچنین فایل این تابع و فایل برنامه ای که خواهیم نوشت، باید هر دو درون یک فولدر قرار داشته باشند (یا مسیر هر دو فایل را به مسیر های نرم افزار متلب اضافه کنیم).

سپس یک برنامه متلب می نویسم که در آن، دو بار به تابع my_function ، ارجاع داده شده است :


clear all
close all
clc

matlabpool('open',2); % start of Parallel Computing
tic

x=zeros(1,10);
x=my_function(x)

y=zeros(1,10);
y=my_function(y)

toc
matlabpool('close'); % end of Parallel Computing

نتیجه :


Starting matlabpool using the 'local' configuration ... connected to 2 labs.

x =

  Columns 1 through 7

           1          32         243        1024        3125        7776       16807

  Columns 8 through 10

       32768       59049      100000


y =

  Columns 1 through 7

           1          32         243        1024        3125        7776       16807

  Columns 8 through 10

       32768       59049      100000

Elapsed time is 0.524047 seconds.
Sending a stop signal to all the labs ... stopped.

مشاهده می کنید که نتایج صحیح است (البته این پاسخ کلی برای پرسش مورد نظر ما است، اما امکان دارد که کاربر به گونه ای کدهای تابع را بنویسد که تداخل به وجود بیاید، مفهوم تداخل را قبلا برایتان شرح دادم، بنابراین همیشه چک کنید که آیا مراحل عملیات های مختلف، با هم تداخل دارند یا خیر).

بنابراین، پاسخ کلی، هم ((بله)) است و هم ((نه)). یعنی اینکه، اگر کدهای نوشته شده در تابع، تداخل در فرآیند موازی بودن، ایجاد نکنند، مشکلی وجود ندارد (مثل مثال ساده بالا که از کدهای تابع، معلوم است که تداخل ایجاد نمی کند) و اگر کدها، تداخل به وجود بیاورند، نتیجه ای غیرمنتظره، به دست می آید. پس همیشه، مستقل بودن پردازش ها را بررسی کنید.

برای آنکه خیالتان راحت شود، ابتدا کدها را به صورت سری اجرا کنید و بعد یک بار به طور موازی و نتیجه ها را مقایسه کنید. نگویید که خوب اینکه شد دو بار اجرا ! ، خود من برای شبیه سازی انتشار امواج الکترومغناطیسی، مجبور بودم که یک برنامه سنگین بنویسم و بعد آن را صدها بار اجرا نمایم و حالت های مختلف ناشی از ورودی های مختلف را مقایسه کنم، بنابراین تنها کافی بود که دو بار برنامه را تست کنم و بعد صدها بار، از برنامه بهینه شده استفاده نمایم، پروژه تعداد زیادی از دانشجویان نیز اینگونه می باشد و در این موارد، این دو بار اجرا کردن، ارزش صرف وقت را دارد.

نویسنده علیرضا گلمکانی
شماره کلید 156
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 20 20 0
akiko
۱۳۹۵/۰۳/۲۶
۱۹:۰۰

thanks

پارسا
۱۳۹۵/۰۴/۲۵
۱۹:۳۹

سلام. ممنون از اطلاعات مفیدتون
سوالی که دارم این است که من کدی دارم که در هر مرحله عملیاتی را انجام میدهد و نتایج در مرحله بعدی بکار میرود. زمان انجام آنالیز در حدود 2 هفته می شود. آیا میتوان با پردازش موازی زمان را کاهش داد؟ ممنون

admin
۱۳۹۵/۰۵/۰۴
۲۰:۳۳

سلام.
با توجه به اینکه باید نتایج هر مرحله برای استفاده در مرحله بعد به کار رود، پس باید هر مرحله را با پردازش موازی اجرا کنید و پس از پایان، به سراغ مرحله بعد بروید (نمی توان مراحل را به صورت موازی اجرا کرد).
نکته مهم این است که کدهای هر مرحله هم مهم است و باید ببینید که می توان آنها را به صورت موازی پردازش کرد یا خیر. بنابراین نمیشه نظر کلی داد و باید خود برنامه نویس، با بررسی کدها، این مورد را چک کند.

Flower

sina
۱۳۹۵/۰۵/۲۶
۲۰:۱۲

سلام.خسته نباشید.بابت سایت خوب و مفیدتون بسیار متشکرم.
سوالی داشتم
برنامه نوشتم که باید حلقه های آن از یک تا 2000 و بیشتر بچرخد. مشکل این است که از دور 499 به بعد یک خط از حلقه که عمل به توان رساندن را انجام می دهد inf می شود
برای حل این مشکل (برطرف کردن inf و دیدن جواب) چه راه کاری را پیشنهاد می کنید؟

سیاوش
۱۳۹۵/۰۷/۰۴
۱۴:۵۸

سلام دمتون گرم 

مه
۱۳۹۵/۰۷/۰۸
۰۷:۵۴

سلام
ممنون از اطلاعات خوبتون
من کدی نوشتم که نیاز به شبکه بندی بسیار ریز دارد. وقتی تعداد شبکه رو بالا تعیین میکنم متلب پیغام out of memory میده.
آیا با موازی سازی ممکنه این مشکل حل بشه یا تنها راهش استفاده از کامپیوتر قویتره؟
ممنون

وحید
۱۳۹۵/۰۷/۳۰
۱۹:۰۲

مرسی از مطلبتون
سوال من اینه که ما از متلب برای بهینه سازی استفاده میکنیم و برای تابع فیتنسمون از یه نرم افزار استفاده میشه
یعنی این نرم افزار باید ران بشه به دفعات. این نرم افزار از متلب توسط بتچ فایل فراخوانی میشه.
ایا راهی هست که همزمان چند بتچ فایل فعال بشن و سپس بدون تداخل باهم چند نرم افزارو به صورت موازی ران کنن؟

hitman
۱۳۹۵/۰۸/۰۵
۰۹:۵۹

این دستور دیگه کار نمیکنه ممنون میشم اگه دستور parpool رو توضیح بدین

فاطمه
۱۳۹۵/۰۸/۲۵
۱۱:۴۳

سلام
ممنون از سایت خوبتون
من میخواستم نمودار هم براش رسم کنم باید چیکار کنم 
اگه میشه لطف کنید راهنماییم کنید

meisamfeizollahzadeh
۱۳۹۵/۱۱/۱۲
۰۰:۳۳

سلام و خسته نباشید لطفا مرا در اجرای این کد در متلب راهنمایی فرمایید میگن کد تست شده و مشکلی نداره : کد زیر کد روش درونیابی نیوتن در متلب است که در زمان اجرا داده ها رو به شکل زیر وارد کردم اما این ارور رو میده که خیلی لازمه باید چهارشنبه ارائه بدم.از زحمات و راهنماییهایتان نهایت تشکر رادارم.
x=[300,400,500,600,700,800]
lengh(x)
y=[.024,.035,.046,.058,.067,0.083]
a=350
newtondd(x,y,a)

n=lengh(x); Error in ==> newtondd at 11
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
کد:

کد پی‌اچ‌پی:
function newtondd(x,y,a)
Newton divided difference 
disp
('              Newton divided difference')
disp('______________________________________________________________________')
disp('     x        y        f[,]       f[,,]     f[,,,]      ...  ')
disp('______________________________________________________________________')
n=lengh(x);
for 
k=1:n-1
      
Compute first divided difference
   d
(k,1)=(y(k+1)-y(k))/(x(k+1)-x(k));
end;
for 
i=2:n-1
   
for k=1:n-i
          
Compute ith divided difference
      d
(k,i)=(d(k+1,i-1)-d(k,i-1))/(x(k+i)-x(k));
   end;
end;
% print 
results
if (rem(n,2)==0)
   p=n/2;
   m=n/2;
else
   p=fix(n/2);
   m=fix(n/2)+1;
end;
for 
i=1:p
   fprintf
('%8.2f %8.2f',x(i),y(i));
   for k=1:i-1
     fprintf
('              %8.5f',d(i-k,2*k));
   end;
   fprintf('\n      ')
   for k=1:i
     fprintf
('              %8.5f',d(i-k+1,2*k-1));
   end;
   fprintf('\n')
end;
j=p;
for 
i=m:-1:1
   j
=j+1;
   fprintf('%8.2f %8.2f',x(j),y(j));
   for k=1:i-1
     fprintf
('              %8.5f',d(j-k,2*k));
   end;
   fprintf('\n      ')
   for k=1:i-1
     fprintf
('              %8.5f',d(j-k+1,2*k-1));
   end;
   fprintf('\n')
end;
%%
%%
p=0;
for 
ii=1:length(x)
    if ii==1
        p
=p+y(1);
    else
        temp=1;
        for jj=2:ii
            temp
=temp*(a-x(jj-1));
        end
        p
=p+d(1,ii-1)*temp;
    end
end
fprintf
('Pn(a=%.2f)=%.2f\n',a,p); 

ati
۱۳۹۶/۰۴/۱۹
۱۶:۳۳

عااالی بود. ممنون از سایت خوبتون Smile

mary
۱۳۹۶/۰۶/۲۱
۱۲:۰۲

با سلام
لطفاً راهنماییم کنیدمی خواهم کد مطلب به طور به موازی اجرا کنم به خطا برخورد کردم
متشکرم
clear all
close all
clc
matlabpool('open',2);
tic
    A=rand(6)
    k=3
    v=rand(6,1)
    n = length(v);
    T = zeros(k);
    V = zeros(n,k);
    v1 = v/norm(v)

    f = A*v1;
    alpha = v1'*f;
    f = f - v1*alpha;

    V(:,1) = v1; T(1,1) = alpha;

    parfor j = 2:k,

        beta = norm(f); 
        v0 = v1; v1 = f/beta;
        
        f = A*v1 - v0*beta;
        alpha = v1'*f;
        f = f - v1*alpha;

        T(j,j-1) = beta
        T(j-1,j) = beta
        T(j,j) = alpha
        V(:,j)   = v1

    end 
toc
matlabpool('close');

مهدی
۱۳۹۶/۰۸/۲۸
۲۲:۳۲

باعرض سلام و خسته نباشید 
من متلب خودم رو از 2011b به 2014b ارتقاء دادم اما متاسفانه در حین اجرای برنامه ای که دارای یک نمودار بود که در هر حلقه مقدار آن عوض میشد نمودار نشان داده نمی شود و در انتهای برنامه نمودار کامل شده نمایش داده می شود در صورتی که در متلب 2011 نمودار در هر تکرار نشان داده میشد و مقدار آن نیز عوض میشد لظفا راهنمایی بفرمایید که چطور این مشکل رو حل کنم چون خیلی مهمه که من تغییرات نمودار رو ببینم
ممنون

مهمان
۱۳۹۹/۱۰/۰۱
۱۳:۲۲

با سلام
یه دستور به نام pause با تاخیر خیلی کم مثلا 0.1 ثانیه اگر در هر تکرار قرار دهید، شکل ها را در هر تکرار نمایش می دهد

فیروزه
۱۳۹۶/۰۹/۲۲
۰۴:۳۲

با سلام از سایت خوبتون.من یه برنام برای بهبود تصاویر پزشکی می خوام که بعدش موازی اجراش کنم.ممنون میشم کسی برنامه ای در متلب بهم بده.

حسین
۱۳۹۷/۰۴/۰۶
۲۲:۳۹

سلام. همونطور که میدونید (و توی آموزشتون ذکر نکردید)، متلب این قابلیت رو داره که از پردازشگرهای cloud استفاده کنه تا تعداد هسته‌ها رو بالا ببره. مثلا اگه cpu کامپیوتر شخصی شما، 4تا هسته داشته باشه، توی پردازش موازی، متلب حداکثر میتونه مسأله رو به چهار قسمت بشکونه. ولی از پردازشگرهای cloud اگه استفاده بشه، این عدد رو میشه خیلی بالا برد (مثلا 64تا -> طبق help متلب).

حالا سؤال من اینه: من میخام از این پردازشگرهای ابری استفاده کنم، منتها برای این کار نیاز به اینترنته، و چون شرکت mathworks ما رو تحریم کرده، همش با خطا مواجه میشم. حتی با فیلترشکن هم خطا میده (احتمالا به خاطر استفاده از IP جعلی هستش). خلاصه آیا راهی هست که اینو دور بزنیم و از پردازشگرهای ابری با تعداد هسته‌های بالا استفاده کنیم؟ مسأله من یه الگوریتم ژنتیکه که متغیرهاش خیلی زیاده (بالای یک میلیون تا). با کامپیوتر عادی کلا منتفیه؛ جواب نمیده.

با تشکر

محمد
۱۳۹۸/۰۱/۱۵
۱۷:۵۶

سلام . میشه دستور "eig" که برای بدست آوردن مقادیر ویژه بکار می رود را به صورت موازی اجرا کرد؟

سیاوش
۱۳۹۸/۰۷/۱۲
۱۹:۵۵

سلام راهی دارین که روی متلب 2018 هم کارساز باشه چون این روش در متلب 2018 جوابگو نیست.

ابوعلی زاده
۱۳۹۹/۰۷/۲۹
۱۳:۴۵

سلام
آیا میشه الگوریتم ژنتیک رو موازی اجرا کرد؟ باتوجه به اینکه خود کدی که محاسبات تابع هدف رو انجام میده باید سری محاسبه شود چون خطوط آن به هم وابسته هستند.
یعنی منظورم این است که می شود خد ساختار اصلی الگوریتم ژنتیک موازی اجرا شود، به گونه ای که محاسبات تابع هدف برای همه افراد از جمعیتش  موازی انجام شود.

میلاد
۱۳۹۹/۱۱/۱۱
۰۰:۱۵

سلام ،ممنون از مطالب که گذاشتید خیلی مفید لود فقط یه مسئله ای که هست من توی برنامه متلب یه کد موازی احرا کردم همون کد اولتون
قسمتی که matlabpool رو مینویسم اررو میده و‌میگه باید بنویسی parpool،من‌نوشتم و جوابم هم کرفتم دریت بود،چرا اینجوری شده بنظرتون؟

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)

جستجو در کلیدستان، توسط گوگل

جستجو در عنوان کلیدها

دسترسی سریع

کلید
×

شماره کلید


دسته بندی
×

شماره دسته کلید


جستجو
×

جستجو


راهنمای دستورات متلب (MATLAB)

راهنمای دستورات متلب (MATLAB) بر اساس حرف اول دستور :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z