[اموزش] مشاهده تغییرات عناصر یک ماتریس به صورت فیلم (انیمیشن) در متلب

P O U R I A

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

مثال
با دستور (10,10) ones ، یک ماتریس با 10 ردیف و 10 ستون می سازیم که تمامی عناصر آن برابر 1 باشد. تغییرات عناصر ماتریس به این صورت است که در هر گام از حلقه با پارامتر p ، مقدار عددی هر عنصر ماتریس، در مجموع شماره سطر و شماره ستون خود، ضرب می شود. دستور imagesc ، مقادیر عناصر ماتریس را به صورت یک تصویر نمایش می دهد و دستور colorbar ، برای این است که رنگ متناظر با هر عدد، در کنار تصویر، نمایش داده شود. نقش دستور (0.02)pause ، بسیار مهم است، این دستور باعث می شود که نرم افزار متلب، در اجرای ادامه برنامه، زمانی برابر با 0.02 ثانیه، توقف داشته باشد، زیرا اگر این توقف وجود نداشته باشد، آنگاه زمان نمایش تصاویر به صورت پی در پی، آنقدر سریع است که دیگر نمی توانید تغییرات عناصر ماتریس را مشاهده کنید. برای سریع تر دیدن تغییرات، می توانید عدد درون پرانتز مربوط به دستور pause را کاهش دهید.
کد:
[COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
A=[COLOR=#0000FF]ones[/COLOR][COLOR=#008800]([/COLOR][COLOR=#3333FF]10[/COLOR],[COLOR=#3333FF]10[/COLOR][COLOR=#008800])[/COLOR];
[COLOR=#0000FF]for[/COLOR] p=[COLOR=#3333FF]1[/COLOR]:[COLOR=#3333FF]2[/COLOR]
    [COLOR=#0000FF]for[/COLOR] m=[COLOR=#3333FF]1[/COLOR]:[COLOR=#3333FF]10[/COLOR]
        [COLOR=#0000FF]for[/COLOR] n=[COLOR=#3333FF]1[/COLOR]:[COLOR=#3333FF]10[/COLOR]
            A[COLOR=#008800]([/COLOR]m,n[COLOR=#008800])[/COLOR]=A[COLOR=#008800]([/COLOR]m,n[COLOR=#008800])[/COLOR]*[COLOR=#008800]([/COLOR]m+n[COLOR=#008800])[/COLOR];
            imagesc[COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR]
            [COLOR=#0000FF]colorbar[/COLOR]
            [COLOR=#0000FF]pause[/COLOR][COLOR=#008800]([/COLOR][COLOR=#3333FF]0.02[/COLOR][COLOR=#008800])[/COLOR]
        [COLOR=#0000FF]end[/COLOR]
    [COLOR=#0000FF]end[/COLOR]
[COLOR=#0000FF]end[/COLOR]

نتیجه :

متلب پنجره ای را باز کرده و نحوه تغییرات عناصر ماتریس A به صورت یک فیلم (عکس های پی در پی) نمایش داده می شود. 2 تا از عکس ها را برای نمونه در زیر نمایش می دهیم :



مثالدر همان مثال قبل، می توانیم زمان مشاهده تصویر تغییرات را زمانی بگیریم که یک بار تمامی عناصر ماتریس، مقادیر جدیدی پیدا کرده اند. برای این منظور، محل دستور های مخصوص نمایش تصویر را باید تغییر دهیم. همچنین حداکثر میزان پارامتر p را به 15 تغییر می دهیم :
کد:
[COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
A=[COLOR=#0000FF]ones[/COLOR][COLOR=#008800]([/COLOR][COLOR=#3333FF]10[/COLOR],[COLOR=#3333FF]10[/COLOR][COLOR=#008800])[/COLOR];
[COLOR=#0000FF]for[/COLOR] p=[COLOR=#3333FF]1[/COLOR]:[COLOR=#3333FF]15[/COLOR]
    [COLOR=#0000FF]for[/COLOR] m=[COLOR=#3333FF]1[/COLOR]:[COLOR=#3333FF]10[/COLOR]
        [COLOR=#0000FF]for[/COLOR] n=[COLOR=#3333FF]1[/COLOR]:[COLOR=#3333FF]10[/COLOR]
            A[COLOR=#008800]([/COLOR]m,n[COLOR=#008800])[/COLOR]=A[COLOR=#008800]([/COLOR]m,n[COLOR=#008800])[/COLOR]*[COLOR=#008800]([/COLOR]m+n[COLOR=#008800])[/COLOR];
        [COLOR=#0000FF]end[/COLOR]
    [COLOR=#0000FF]end[/COLOR]
    imagesc[COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR]
    [COLOR=#0000FF]colorbar[/COLOR]
    [COLOR=#0000FF]pause[/COLOR][COLOR=#008800]([/COLOR][COLOR=#3333FF]0.02[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]end[/COLOR]

نتیجه :

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


منبع: کلیدستان

 
بالا