ساخت ماتریس دو بعدی برای رسم شکل های سه بعدی، با دستور meshgrid ، در متلب (MATLAB)
فرض کنید بخواهیم ماتریس z را به صورت یک ماتریس دو بعدی، بر حسب مقادیر مختلف x و y ، تعریف کنیم و سپس آن را به صورت یک شکل سه بعدی (با هر دستور ترسیم سه بعدی دلخواه) رسم کنیم. برای این منظور، قبل از هر چیز باید بازه لازم برای x و y و همچنین مقادیر انتخاب شده از x و y در این بازه را تعریف کنیم. برای این منظور، می توانیم از دستور meshgrid در متلب (MATLAB) استفاده کنیم.
به مثال زیر توجه کنید :
نتیجه :
ابتدا با دستور [x,y] = meshgrid(-4:0.1:4,-3:0.1:3) تعیین کرده ایم که بازه تعریفی برای x ، به صورت -4:0.1:4 و بازه تعریفی برای y ، به صورت -3:0.1:3 باشد. سپس مقادیر z را به صورت دلخواه، بر حسب مقادیر مختلف x و y ، به دست آورده ایم. دقت کنید که به کار بردن علامت نقطه (.) بعد از x و y ، ضروری می باشد و معنی آن این است که هر عنصر x یا y ، به توان 2 برسد، نه اینکه کل ماتریس x یا y به توان 2 برسد. سپس ماتریس z را با دستور mesh ، به صورت سه بعدی رسم کرده ایم. دستور colorbar برای این است که مقدار متناظر با رنگ های مختلف، در کنار شکل، نمایش داده شود. دستورات xlabel و ylabel و zlabel ، برای تعیین عنوان برای محورهای مختصات، به کار رفته اند.
با تشکر
مطلب مفید و مختصر و کاربردی!!!
با سلام و خسته نباشید
از سایت خوبِ تون ممنون
من ۲ تا ابر نقاط دارم که یکیشون و به عنوان مرجع به سطح تبدیل کردم حالا میخوام فاصله یه بین این سطح و ابر نقاط مو نمایش بدم. چطور میشه این کارو انجام بدم؟
ممنون
سلام ...من برای یه برنامه نیاز دارم که یک ماتریس 3×9×3رو به یک ماتریس 9×9تبدیل کنم ...به طوریکه طبقه اول ماتریس سه بعدی سه سطر اول طبقه دومش سه سطر دوم و طبقه سومش سه سطر سوم رو تشکیل بدن ...ممنون میشم جواب بدید خیلی وقته گیر این مشکل هستم
سلام.
از دستور reshape در متلب (MATLAB)، برای تغییر اندازه (ابعاد) ماتریس استفاده نمایید :
اگر دستور reshape ، ماتریس را به آن شکلی که شما خواستید، تغییر اندازه نداد (چیدمان عنصرها در ماتریس، متفاوت با خواست شما بود)، می توانید با استفاده از حلقه های for تو در تو ، عنصرهای ماتریس اصلی را فراخوانی کرده و به شکلی که خودتان می خواهید، در یک ماتریس جدید، ذخیره نمایید.
خیلی خوب توضیح دادید. ممنون