نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی پرتال اطلاعاتی

عناصر MATLAB زبان M. برنامه های متلب

5. قابلیت مشاهده نام متغیرها و نام توابع.

متغیرهای محلی و جهانی تابع فضای متغیر خود را دارد که از فضای کاری MATLAB جدا شده است. بنابراین، اگر قبل از فراخوانی تابع M، متغیری با نام، به عنوان مثال varName1، در پنجره دستور MATLAB تعریف شده باشد، نمی‌توانید فرض کنید که متغیر موجود در بدنه تابع با همان نام قبلاً مقداری دارد. این یک متغیر کاملاً متفاوت است (اگرچه همان نام varName1 را دارد) و در حافظه ماشین در ناحیه حافظه متفاوتی قرار دارد.

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

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

یکی از کانال های انتقال اطلاعات از پنجره فرمان سیستم متلب به تابع M و از یک تابع به تابع دیگر مکانیسم پارامترهای تابع است. یکی دیگر از این مکانیسم ها متغیرهای جهانی است.

برای اینکه فضای کاری MATLAB و چندین تابع M یک متغیر را با نام خاصی به اشتراک بگذارند، باید با استفاده از کلمه کلیدی سراسری در همه جا جهانی اعلام شود. به عنوان مثال، متغیر glVarS که در محاسبات در فضای کاری و در تابع FuncWithGlobVar دخیل است در همه جا همان متغیر (یک تکه حافظه) است - بنابراین می‌توان آن را در یک تابع بدون تخصیص هیچ مقدار اضافی به آن استفاده کرد:

از آنجایی که متغیرهای سراسری دامنه «جهانی» دارند، برای اینکه به طور تصادفی (به اشتباه) آن را در جایی بازتعریف نکنند، توصیه می‌شود به چنین متغیرهایی نام‌های یادگاری (طولانی‌تر و معنی‌دارتر) داده شود.

حال اجازه دهید به مسئله قابل مشاهده بودن نام توابع نگاه کنیم. اگر تابعی را با نام خاصی در فایلی با همین نام و پسوند m ذخیره کرده باشیم و علاوه بر این اگر متلب مسیر این فایل را روی دیسک بداند، این تابع هم از پنجره فرمان و هم از توابع دیگر قابل فراخوانی است.

با این حال، در متن یک تابع M، می توانید تعاریف چندین تابع را قرار دهید و تنها یکی از آنها می تواند نام را با نام فایل مطابقت دهد. این تابع است که از پنجره فرمان و سایر توابع قابل مشاهده خواهد بود. همه توابع دیگر داخلی خواهند بود - فقط توابع از همان فایل می توانند آنها را فراخوانی کنند.

به عنوان مثال، اگر فایل ManyFunc.m حاوی متن زیر باشد

تابع ret1 = ManyFunc (x1، x2)

ret1 = x1. * x2 + AnotherFunc (x1)

تابع ret2 = AnotherFunc (y)

ret2 = y * y + 2 * y + 3;

متشکل از تعاریف دو تابع به نام های ManyFunc و AnotherFunc است، پس فقط تابع ManyFunc را می توان از بیرون فراخوانی کرد. به روشی دیگر می توان گفت که فقط توابعی با نام هایی که با نام فایل های M مطابقت دارند از بیرون قابل مشاهده هستند. بقیه توابع باید توسط این تابع و سایر توابع داخلی فراخوانی شوند.

Ode23 ("lotka2" ,,); نمودار (t, y) فرمان global متغیرهای ALPHA و BETA را جهانی اعلام می کند و بنابراین در تابع lotka.m موجود است. بنابراین، آنها را می توان از خط فرمان تغییر داد و راه حل های جدید بدون ویرایش فایل M-lotka.m به دست می آید. برای کار با متغیرهای سراسری، باید: در هر تابع M که به این متغیر نیاز دارد، متغیر را جهانی اعلام کنید. برای جهانی بودن یک متغیر فضای کاری، باید آن را از خط فرمان به عنوان جهانی اعلام کنید. در هر تابع، از دستور global قبل از اولین ظاهر متغیر استفاده کنید. توصیه می شود از دستور global در ابتدای فایل M استفاده کنید. نام متغیرهای سراسری معمولا طولانی تر و معنادارتر از نام متغیرهای محلی هستند و اغلب با حروف بزرگ نوشته می شوند. این اختیاری است، اما برای حفظ خوانایی در کد MATLAB و کاهش احتمال تعریف مجدد تصادفی یک متغیر سراسری توصیه می‌شود. متغیرهای خاص برخی از توابع M متغیرهای خاصی را برمی‌گردانند که نقش مهمی در محیط متلب دارند: آخرین نتیجه; اگر متغیر خروجی مشخص نشده باشد، متلب از متغیر ans استفاده می کند. دقت نقطه شناور؛ تعیین شده توسط eps طول مانتیس است و برای PC eps = 2.220446049250313e-016 حداکثر عدد ممیز شناور، که با realmax من در کامپیوتر نشان داده می شود. برای کامپیوتر realmax = 1.797693134862316e + 308. کوچکترین عدد ممیز شناور که معدن realmin در کامپیوتر است. برای کامپیوتر realmin = 2.225073858507202e-308. یک متغیر ویژه برای p: pi pi = 3.141592653589793e + 000. 70 متغیر ویژه برای i خیالی، j واحد متغیر ویژه برای نماد بی نهایت؟ یک متغیر ویژه برای نشان دادن یک مقدار تعریف نشده - نتیجه عملیاتی مانند: 0/0، inf / inf. یک متغیر ویژه برای نشان دادن نوع کامپیوتر مورد استفاده توسط کامپیوتر. برای کامپیوتر - PCWIN. یک متغیر ویژه برای نشان دادن تعداد فلاپ های عملیات ممیز شناور. یک متغیر ویژه برای ذخیره شماره نسخه نسخه سیستم متلب استفاده شده. توابع M مربوطه که این متغیرهای ویژه را ایجاد می کنند در فهرست راهنمای elmat قرار دارند و توسط یک راهنمای آنلاین پشتیبانی می شوند. انواع داده ها متلب شش نوع داده پایه را تعریف می کند که هر کدام یک آرایه چند بعدی هستند. این شش کلاس عبارتند از double، char، sparse، uint8، cell و struct. نسخه‌های دو بعدی این آرایه‌ها، ماتریس نامیده می‌شوند، که MATLAB نام خود یعنی MATRIX LAB را از آنجا گرفته است. نمودار یک شی سیستم MATLAB متعلق به یکی از کلاس ها به شرح زیر است (شکل 3.1): شکل 3.1 71 اغلب شما باید فقط با دو نوع داده سر و کار داشته باشید: آرایه ای از اعداد با دقت دوگانه (دوگانه) و یک آرایه ای از کاراکترها (char)، یا فقط یک رشته. این به این دلیل است که تمام محاسبات در متلب با دقت مضاعف انجام می شود و اکثر توابع با آرایه هایی از اعداد یا رشته ها با دقت مضاعف کار می کنند. سایر انواع داده ها برای کاربردهای خاص مانند کار با ماتریس های پراکنده (sparse)، پردازش تصاویر (uint8)، کار با آرایه هایی با ابعاد بزرگ (سلول ها و ساختار) در نظر گرفته شده اند. نوع متغیر را نمی توان روی عددی یا آرایه تنظیم کرد. این نوع ها انواع مجازی نامیده می شوند و فقط برای گروه بندی متغیرهایی که دارای ویژگی های مشترک هستند استفاده می شوند. نوع uint8 برای ذخیره موثر داده ها در حافظه است. فقط عملیات اولیه نمایه سازی و تغییر اندازه را می توان برای این نوع داده اعمال کرد، اما هیچ عملیات ریاضی را نمی توان انجام داد. برای انجام این کار، چنین آرایه هایی باید به دو نوع تبدیل شوند. ایجاد انواع خود و اضافه کردن روش ها برای انواع داخلی. جدول زیر شامل هفتمین نوع داده، UserObject است. متلب به شما این امکان را می دهد که انواع داده های خود را ایجاد کنید و با آنها به صورت قیاس با انواع داخلی کار کنید. برای انواع داده های داخلی، می توانید یک متد را به همان روشی که برای یک شیء وجود دارد، لغو کنید. به عنوان مثال، برای تعریف عملیات مرتب سازی برای آرایه ای از نوع uint8، باید یک متد (sort.m یا sort.mex) ایجاد کنید و آن را در پوشه uint8@ قرار دهید. جدول زیر انواع داده ها را با جزئیات بیشتری توضیح می دهد. مثال کلاس شرح آرایه عددی با دقت دوگانه (این متداول ترین [1 2; 3 4] متغیر دوتایی نوع 5 + 6i در آرایه کاراکتری 72 متلب است (هر کاراکتر 16 بیت طول دارد)، اغلب به نام Char "Hi" ردیف. Double ماتریس پراکنده دقیق (فقط 2 بعدی). ساختار پراکنده برای ذخیره ماتریس‌هایی با تعداد کمی ورودی غیر صفر استفاده می‌شود، که به Sparse Speye (5) اجازه می‌دهد تنها از کسری از حافظه مورد نیاز برای ذخیره ماتریس کامل استفاده کند." - ماتریس‌های عمومی نیاز به استفاده از روش های خاص برای حل مسائل آرایه سلولی عناصر این آرایه شامل آرایه های دیگری است. آرایه های سلولی به سلول (17 چشم «سلام» (2)) اجازه می دهد تا داده های مرتبط را، احتمالاً با اندازه های مختلف، در یک ساختار واحد ترکیب کند. آرایه ای از رکوردها شامل نام فیلدها می شود. A.day = 12; A.color = خود فیلدها می توانند حاوی آرایه باشند. مانند ساختار "قرمز"؛ A.mat = آرایه های سلولی، آرایه های جادویی (3); رکوردها داده های مرتبط و اطلاعات مربوط به آنها را ترکیب می کنند. 73 آرایه ای از اعداد صحیح بدون علامت 8 بیتی. این به شما امکان می دهد اعداد صحیح را در محدوده 0 تا 255 در 1/8 حافظه مورد نیاز Uint8 Uint8 (جادویی (3)) برای یک آرایه با دقت دوگانه ذخیره کنید. هیچ عملیات ریاضی برای این آرایه ها تعریف نشده است. نوع داده تعریف شده توسط UserObject درون خطی ("sin (x)") تعریف شده توسط کاربر. شرح نمودار. خطوط اتصال در نمودار (شکل 3.1) تعلق یک نوع خاص از داده ها را به یک یا چند کلاس مشخص می کند. مثال. یک ماتریس پراکنده نیز دارای انواع دوگانه و عددی است. اپراتورهای isa (S ", sparse") isa (S ", double") isa (S ", numeric") مقادیر 1 (درست) را برمی‌گردانند، یعنی S یک ماتریس پراکنده عددی با دقت دوگانه است. توجه داشته باشید که نوع آرایه در بالای نمودار است. این بدان معناست که تمام داده های متلب آرایه هستند. به هر نوع داده می توان توابع و عملگرهای پردازش یا به عبارت دیگر روش ها را اختصاص داد. انواع داده های فرزند زیر والد در نمودار توسط روش های والد نیز پشتیبانی می شوند. بنابراین، آرایه ای از نوع double با روش های مورد استفاده برای نوع عددی پشتیبانی می شود. برخی از این روش ها در جدول نشان داده شده است: روش کلاس 74 محاسبه اندازه، طول، ابعاد (ndims)، الحاق آرایه ها ()، جابجایی، نمایه سازی آرایه چند بعدی (زیرزنما)، تغییر شکل (تغییر شکل) و تغییر ابعاد یک چند بعدی. آرایه. نمایه سازی با استفاده از پرانتزهای فرفری - آرایه ای از سلول های سلولی (e1، ...، en) و جداسازی موارد لیست با کاما. توابع رشته ای (strcmp، پایین تر)، تبدیل خودکار رشته Char Char به دو نوع برای استفاده از روش های کلاس دوبل. عملیات حسابی و منطقی، توابع ریاضی، توابع از ماتریس. جستجو (یافتن)، پردازش اعداد مختلط (واقعی، تصویر)، تولید بردارها، انتخاب ردیف‌های عددی، ستون‌ها، بلوک‌های فرعی یک آرایه، گسترش یک اسکالر. عملیات پراکنده بر روی ماتریس های پراکنده. آرایه رکوردها دسترسی به محتویات فیلد .(جداکننده ساختار آیتم های لیست یک کاما است). عملیات ذخیره سازی (اغلب با جعبه ابزار پردازش تصویر RFP Uint8 استفاده می شود) آرایه های خالی UserObject تعریف شده توسط کاربر. نسخه های قبلی MATLAB یک فرم واحد از آرایه خالی 0x0 را مجاز می دانستند که به عنوان نشان داده می شد. متلب از آرایه‌هایی پشتیبانی می‌کند که یک، اما همه ابعاد آن صفر است، یعنی آرایه‌هایی با ابعاد 1x0، 10x0x20 یا خالی تعریف شده‌اند. براکت های مربع همچنان آرایه 0x0 را نشان می دهند. آرایه های خالی با اندازه های مختلف را می توان با استفاده از توابع صفر، یک، رند یا چشم ایجاد کرد. به عنوان مثال، برای تشکیل یک آرایه خالی به اندازه 0x5، می توانید از عملگر انتساب E = صفر (0,5) استفاده کنید. 75 هدف اصلی آرایه های خالی این است که هر عملیاتی که برای یک آرایه (ماتریس) با اندازه m × n تعریف می شود، برای حالتی که m یا n برابر با صفر است، نتیجه صحیح را ایجاد کند. اندازه آرایه (ماتریس) نتیجه باید با مقدار تابع محاسبه شده در صفر مطابقت داشته باشد. برای مثال، عملگر C = به آرایه های A و B نیاز دارد که تعداد ردیف های یکسانی داشته باشند. بنابراین، اگر آرایه A دارای اندازه m؟N، و B دارای اندازه m؟P باشد، آنگاه C آرایه ای با اندازه m؟ (N + p) است. اگر هر یک از پارامترهای m، n یا p صفر باشد، نتیجه صحیح است. بسیاری از عملیات در متلب یک بردار سطر یا بردار ستون ایجاد می کنند. در این حالت، نتیجه می تواند یک بردار ردیف خالی r = صفر (1، 0) یا یک بردار ستون خالی C = صفر (0، 1) باشد. متلب 5 و بالاتر از قوانین سیستم متلب 4 برای دستورات if و while پشتیبانی می کند. به عنوان مثال، یک عملگر شرطی مانند if A، S1، else، S0، زمانی که A یک آرایه خالی است عملگر S0 را اجرا می کند. برخی از توابع متلب مانند sum، prod، min و max نتیجه را کوچک می کنند: اگر آرگومان یک آرایه باشد، نتیجه یک بردار است. اگر آرگومان بردار باشد، نتیجه یک عدد اسکالر است. برای این توابع، با یک آرایه ورودی خالی، نتایج زیر به دست می آید: sum () = 0; prod () = 1; حداکثر () =; دقیقه () =. 3.4 اپراتورهای سیستم متلب 5. ترکیب عملگرها در عبارات حسابی. توابع داخلی اپراتورهای سیستم متلب اپراتورهای سیستم متلب به سه دسته تقسیم می شوند: 76 عملگر حسابی به شما امکان می دهد عبارات حسابی بسازید و محاسبات عددی را انجام دهید. عملگرهای رابطه ای به شما امکان می دهند عملوندهای عددی را مقایسه کنید. عملگرهای منطقی به شما این امکان را می دهند که عبارات منطقی بسازید. عملگرهای منطقی کمترین اولویت را نسبت به عملگرهای رابطه ای و حسابی دارند. عملگرهای حسابی هنگام کار با آرایه‌ای از اعداد، سطوح اولویت زیر در بین عملیات‌های حسابی تنظیم می‌شوند: سطح 1: جابه‌جایی بر حسب عنصر (. ")، توان عنصری (. ^)، جابجایی ماتریس مزدوج هرمیتی (")، توان ماتریس (. ^)؛ سطح 2: جمع واحد (+)، تفریق واحد (-)؛ سطح 3: ضرب آرایه ها (. *)، تقسیم راست (./)، تقسیم چپ آرایه ها (. \)، ضرب ماتریس (*)، حل سیستم های معادلات خطی، عملیات (/)، عملیات (\). سطح 4: جمع (+)، تفریق (-)؛ سطح 5: عملگر تشکیل آرایه (:). در هر سطح، اپراتورها دارای اولویت برابر هستند و به ترتیب چپ به راست ارزیابی می شوند. ترتیب پیش فرض را می توان با استفاده از پرانتز تغییر داد. مثال. اجازه دهید 2 بردار A =; B =; نتایج اجرای عملگر C = A./B. ^ 2 برابر است با C = 0.7500 9.0000 0.2000 و عملگر C = (A./B). ^ 2 C = 2.2500 81.0000 1.0000 است. همانطور که می بینید، نتایج کاملا متفاوت است. عملگرهای حسابی اجازه استفاده از عبارات شاخص را می دهند. به عنوان مثال: 77 b = sqrt (A (2)) + 2 * B (1) b = 7 عملگر محاسباتی MATLAB معمولاً با آرایه های هم اندازه کار می کنند. برای بردارها و آرایه های مستطیلی، هر دو عملوند باید یک اندازه باشند، مگر اینکه یکی از آنها اسکالر باشد. اگر یکی از عملوندها اسکالر باشد و دیگری نباشد، در متلب پذیرفته شده است که اسکالر به اندازه عملوند دوم گسترش یافته و عملیات مشخص شده برای هر عنصر اعمال شود. این عملیات را گسترش اسکالر می نامند. عملگرهای رابطه ای متلب 6 عملگر رابطه ای زیر را تعریف می کند:< Меньше <= Меньше или равно >بزرگتر از> = بزرگتر یا مساوی == برابر با هویت ~ = مساوی نیست عملگرهای رابطه ای یک مقایسه عنصری بین دو آرایه با ابعاد مساوی انجام می دهند. برای بردارها و آرایه های مستطیلی، هر دو عملوند باید یک اندازه باشند، مگر اینکه یکی از آنها اسکالر باشد. در این مورد، متلب اسکالر را با هر عنصر عملوند دیگر مقایسه می کند. موقعیت هایی که این نسبت درست است، مقدار 1 را دریافت می کنند، که در آن نادرست - 0. عملگرهای رابطه، به عنوان یک قاعده، برای تغییر دنباله اجرای دستورات برنامه استفاده می شوند. بنابراین، آنها اغلب در بدنه دستورات switch if، for، while استفاده می شوند. عملگرهای رابطه ای همیشه به صورت عنصری اجرا می شوند. مثال. بیایید دو آرایه را با استفاده از شرط A مقایسه کنیم

مبانی برنامه نویسی MatLab

نامستنیکوف اس.ام. / مجموعه سخنرانی ها: UlSTU، Ulyanovsk. - 2011

معرفی

فصل 1. ساختار برنامه. عملیات ریاضی پایه و انواع داده ها

1.1. ساختار برنامه بسته MatLab

1.2. متغیرهای ساده و انواع داده های پایه در MatLab

1.3. عملیات حسابی روی متغیرهای ساده

1.4. توابع ریاضی پایه MatLab

1.5. بردارها و ماتریس ها در MatLab

1.6. عملیات بر روی ماتریس ها و بردارها

1.7. ساختارها در MatLab

1.8. سلول ها در MatLab

فصل 2. عملگرها و حلقه های شرطی در MatLab

2.1. بیانیه if شرطی

2.2. بیانیه سوئیچ شرطی

2.3. بیانیه حلقه while

2.4. برای عملگر حلقه

فصل 3. کار با نمودارها در MatLab

3.1. تابع پلات

3.2. طراحی نمودار

3.3. نمایش نمودارهای سه بعدی

3.4. نمایش بیت مپ

فصل 4. توابع برنامه نویسی در MatLab

4.1. رویه برای تعریف و فراخوانی توابع

4.2. دامنه متغیر

فصل 5. کار با فایل ها در MatLab

5.1. ذخیره و بارگیری توابع

5.2. توابع Fwrite و fread

5.3. توابع Fscanf و fprintf

5.4. توابع Imread و imwrite

معرفی

در میان بسیاری از بسته‌های ریاضی موجود، مانند Mathematica، MathCad و غیره، سیستم MatLab به دلیل زبان برنامه‌نویسی داخلی مناسب برای پیاده‌سازی طیف گسترده‌ای از الگوریتم‌های ریاضی و مسائل مدل‌سازی ریاضی، جایگاه پیشرو را به خود اختصاص می‌دهد. علاوه بر این، این بسته دارای یک ابزار مدل سازی بصری اضافی Simulink است که به شما امکان می دهد مدل های ریاضی را بدون استفاده از برنامه نویسی بسازید و کاوش کنید.

این آموزش زبان برنامه نویسی داخلی MatLab را بررسی می کند که بیشترین انعطاف، غنای عملکرد و راحتی را در حل و تحقیق مسائل ریاضی می دهد. در ارائه مطالب، اولویت به ساده‌ترین ساخت‌های زبان داده شد که با مطالعه آن‌ها می‌توان متنوع‌ترین و بی‌اهمیت‌ترین الگوریتم‌های ریاضی را ایجاد کرد.

فصل 1. ساختار برنامه. عملیات ریاضی پایه و انواع داده ها

اولین قدم برای ایجاد الگوریتم های ریاضی، مطالعه ساختار برنامه و مجموعه عملیات ریاضی موجود در زبان برنامه نویسی است. به طور خاص، این فصل عملیات و توابع ریاضی بسته MatLab مربوط به پردازش متغیرهای اسکالر و ماتریسی را در نظر می گیرد.



ساختار برنامه بسته MatLab

به عنوان یک قاعده، هر برنامه در MatLab یک تابع است و با کلمه کلیدی تابع شروع می شود، به دنبال آن نام آن و با فاصله از هم جدا می شود. برای مثال،

تابع آزمایشگاه 1
a = 5;
b = 2;
c = a * b;

این برنامه در تابعی به نام Lab1 قرار دارد و حاصل ضرب دو متغیر a و b را محاسبه می کند. هنگام ذخیره یک برنامه در یک فایل m، توصیه می شود نام فایلی را مشخص کنید که با نام تابع مطابقت داشته باشد. در این مورد، Lab1.

لازم به ذکر است که بسیاری از توابع اضافی را می توان در یک فایل m مشخص کرد. برای این کار کافی است یک کلمه کلیدی تابع دیگر در انتهای لیست برنامه اصلی بنویسید و نام آن را مشخص کنید، به عنوان مثال:

تابع آزمایشگاه 1
a = 5;
b = 2;
c = a * b;
out_c (c)؛ تابع % فراخوانی out_c ()

تابع out_c (arg_c)% تعریف تابع out_c ()
disp (arg_c)؛

توجه داشته باشید که تابع out_c () را می توان قبل از تعریف در برنامه اصلی فراخوانی کرد. این یکی از ویژگی های زبان MatLab است که به برنامه نویس اجازه می دهد تا نگران ترتیب توابع اختصاص ندهد. در مثال داده شده، تابع out_c () دارای یک پارامتر ورودی به نام arg_c است که با استفاده از تابع disp داخلی () روی صفحه نمایش داده می شود (در پنجره دستور MatLab). در نتیجه زمانی که برنامه فوق اجرا می شود، مقدار متغیر c در پنجره دستور MatLab نمایش داده می شود.

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

فایل اول (Lab1.m)

هنگامی که تابع Lab1 اجرا می شود، سیستم MatLab تابع مربع را از فایل Square.m فراخوانی می کند. این به طور خودکار انجام می شود زیرا توابع داخلی زبان MatLab نیز از فایل هایی تعریف و فراخوانی می شوند که نام آنها معمولاً با نام توابع فراخوانی شده مطابقت دارد. همچنین توجه داشته باشید که مربع () نه تنها دو آرگومان a و b را می گیرد، بلکه حاصل ضرب آنها را با استفاده از متغیر res برمی گرداند. سینتکس ارائه شده باید هر زمان که بخواهید یک نتیجه محاسباتی را به برنامه اصلی برگردانید استفاده شود. فصل چهارم این آموزش با جزئیات بیشتری ساختار فراخوانی های تابع را برای اجرای الگوریتم های مختلف توضیح می دهد.

متغیرهای ساده و انواع داده های پایه در MatLab

ایجاد یک برنامه، به عنوان یک قاعده، با تعریف متغیرها و روشی برای نمایش داده ها آغاز می شود. بنابراین، به منظور سازماندهی مناسب شرح داده های برنامه، باید بدانید که چگونه متغیرها را در MatLab تنظیم کنید و چه نوع متغیرهایی ممکن است.

ساده ترین و رایج ترین نوع داده یک عدد است. در MatLab، یک عدد در متغیری ذخیره می‌شود که به عنوان مثال، یک نام منحصر به فرد دارد

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

مقدار متغیر a را روی -7.8 قرار می دهد. شما می توانید نوع متغیر را با تعیین نوع شماره اختصاص داده شده با استفاده از کلمه کلیدی مناسب تغییر دهید، به عنوان مثال،

عدد 5 را به عنوان یک عدد صحیح 16 بیتی اختصاص می دهد. در نتیجه چنین عملیاتی، نوع متغیر a مطابق با int16 خواهد بود.

انواع داده های موجود در MatLab در جدول ارائه شده است. 1.1.

جدول 1.1. انواع داده های پایه در MatLab

به طور پیش فرض از نوع دوگانه استفاده می شود که بیشترین دقت را برای نمایش یک عدد واقعی دارد و بنابراین یک نوع جهانی است. اما در صورت نیاز به ذخیره حافظه کامپیوتر می توانید نوع مورد نظر را خودتان مشخص کنید.

آخرین چیزی که هنگام تعریف متغیرها باید از آن آگاه بود، قانون تعیین نام آنها است. در MatLab، نام متغیرها را می توان تنها با حروف لاتین، اعداد و نماد '_' مشخص کرد. علاوه بر این، اولین کاراکتر در نام باید با حرف الفبای لاتین مطابقت داشته باشد. همچنین لازم به ذکر است که اسامی

arg = 1;
ارگ = 2;
ARG = 3;

اینها سه نام مختلف هستند، یعنی سه متغیر مختلف با مقادیر 1، 2 و 3 به ترتیب. این مثال نشان می دهد که MatLab حروف بزرگ را در نام متغیرها متمایز می کند.

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

مانند تمام زبان های برنامه نویسی، MatLab توانایی کار با متغیرها را فراهم می کند. علاوه بر این، کاربر لازم نیست نگران این باشد که متغیر چه مقادیری خواهد گرفت (مختلط، واقعی یا فقط اعداد صحیح). برای اینکه مثلاً مقدار 1.45 را به متغیر z نسبت دهیم، کافی است که z = 1.45 را در خط فرمان بنویسیم و MatLab بلافاصله مقدار z را نمایش می دهد:

»Z = 1.45
z =
1.4500

در اینجا از علامت مساوی به عنوان استفاده می شود اپراتور واگذاریدریافت نتیجه پس از هر تکلیف اغلب خیلی راحت نیست. بنابراین، MatLab این امکان را فراهم می کند که عملگر انتساب را با یک نقطه ویرگول خاتمه دهد تا خروجی نتیجه را در پنجره فرمان متوقف کند. نام متغیر می تواند هر دنباله ای از حروف و اعداد بدون فاصله باشد که با یک حرف شروع می شود. حروف کوچک و بزرگ متفاوت هستند، برای مثال MZ و mz دو متغیر متفاوت هستند. تعداد کاراکترهای درک شده توسط MatLab در نام متغیر 31 است.
به عنوان تمرینی برای استفاده از متغیرها، معنای عبارت زیر را بیابید:

دنباله دستورات زیر را تایپ کنید (به نقطه ویرگول در دو عبارت انتساب اول توجه کنید تا نمایش مقادیر میانی روی صفحه نمایش داده نشود):

"X = sin (1.3 * pi) / log (3.4);
»Y = sqrt (tan (2.75) / tanh (2.75));
» z= (x + y) / (x-y)
ز =
0.0243 - 0.9997i

آخرین دستور انتساب با نقطه ویرگول به پایان نمی رسد تا فوراً مقدار عبارت اصلی را بدست آورد. البته، می توان کل فرمول را یکباره وارد کرد و همان نتیجه را گرفت:

»(Sin (1.3 * pi) / log (3.4) + sqrt (tan (2.75) / tanh (2.75))) /…
(sin (1.3 * pi) / log (3.4) -sqrt (tan (2.75) / tanh (2.75))) ans =
0.0243 - 0.9997i

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

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

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

"ایکس
-0.6611

متغیرهای تعریف شده در بالا را می توان در فرمول های دیگر نیز استفاده کرد. به عنوان مثال، اگر اکنون نیاز به ارزیابی عبارت دارید

,

سپس فقط دستور زیر را وارد کنید:

"(X-y) ^ (3/2)
ans =
-0.8139 + 0.3547i

فراخوانی توابع در MatLab به اندازه کافی انعطاف پذیر است. به عنوان مثال، می توانید با فراخوانی تابع exp از خط فرمان، e3.5 را محاسبه کنید:

»انقضا (3.5)
ans =
33.1155

راه دیگر استفاده از عملگر انتساب است:

»T = exp (3.5)
t =
33.1155

فرض کنید که بخشی از محاسبات با متغیرها انجام شده است و بقیه باید در جلسه بعدی کار با MatLab تکمیل شود. در این صورت باید متغیرهای تعریف شده در محیط تولید را ذخیره کنید.

مشاهده متغیرها

هنگامی که با تعداد کافی متغیر کار می کنید، باید بدانید که کدام متغیر قبلا استفاده شده است و کدامیک استفاده نشده است. برای این منظور از دستور who استفاده می شود که لیستی از متغیرهای استفاده شده را در پنجره دستور MatLab نمایش می دهد:

"که
متغیرهای شما عبارتند از:
al a2 a3

دستور whos به شما امکان می دهد اطلاعات دقیق تری در مورد متغیرها در قالب یک جدول به دست آورید:

کل کل 3 عنصر با 24 بایت است

ستون اول، نام، شامل نام متغیرهای استفاده شده است. آنچه در ستون Size وجود دارد اساساً توسط اصل اساسی کار MatLab تعیین می شود. نرم افزار MatLab تمام داده ها در قالب آرایه ارائه می شوند.متغیرهای al، a2 و a3 یک به یک آرایه های دو بعدی هستند. همانطور که در ستون Bytes نشان داده شده است، هر یک از متغیرها هشت بایت است. در نهایت، آخرین ستون کلاس، نوع متغیرها را نشان می دهد - آرایه دوگانه، یعنی. آرایه ای از اعداد با دقت مضاعف خط زیر جدول می گوید که در پایان سه عنصر وجود دارد، i.e. متغیرها بیست و چهار بایت هستند. به نظر می رسد که نمایش تمام داده ها در MatLab در قالب آرایه ها مزایای خاصی را به همراه دارد.
برای آزاد کردن همه متغیرها از حافظه، از دستور clear استفاده کنید. اگر لیستی از متغیرها را در آرگومان ها مشخص کنید (با یک فاصله از هم جدا شده اند)، فقط آنها از حافظه آزاد می شوند، به عنوان مثال:

»پاک کردن al a3
"که
متغیرهای شما عبارتند از:
a2

با شروع از نسخه 6.0، یک ابزار مناسب برای مشاهده متغیرهای محیط کار ظاهر شده است - فضای کاری، برای جابجایی که نشانک به همین نام باید به آن فعال شود. این پنجره حاوی جدولی مشابه جدولی است که با دستور whos نمایش داده می شود. با دوبار کلیک کردن روی ردیف مربوط به هر متغیر، محتویات آن در یک پنجره جداگانه نمایش داده می شود که به ویژه هنگام کار با آرایه ها مفید است. نوار ابزار پنجره فضای کاریبه شما امکان می دهد متغیرهای غیر ضروری را حذف کنید، محیط کار را ذخیره و باز کنید.

1. عناصر M-LANGUAGE متلب

عناصر موجود در زبان M که برای کنترل فرآیند محاسباتی در MATLAB استفاده می شوند، ثابت ها، متغیرها، توابع، دستورات و ساختارهای کنترلی هستند. این عناصر، احتمالاً در اتصالات مختلف با استفاده از کانکتورهای خاص، هم در خط فرمان و هم در برنامه ها استفاده می شوند.

1.1. ثابت درمتلب

یک ثابت در متلب اطلاعاتی را نشان می دهد که در کل جلسه ارتباط تغییر نمی کند. ثابت ها را می توان توسط کاربر (تعریف شده توسط کاربر) و تعریف شده توسط سیستم (تعریف سیستم) تعریف کرد. ثابت های تعریف شده توسط کاربر توسط کاربر مشخص می شوند و فقط یک بار استفاده می شوند - در لحظه ای که در خط فرمان اجرایی ذکر شده اند. به عنوان مثال، 16، -38.654، -1.e-23، 1 + 2i، "این یک نماد ثابت است".

ثابت های سیستم به طور دائمی در سیستم تعریف می شوند و دارای نام های خاصی هستند که به آنها اشاره می شود، به عنوان مثال، pi (= 3.1416)، eps (= 2.2204e-016)، realmin (= 2.2251e-308)، realmax (= 1.7977). e + 308)، i، j (jºi).

1.2. متغیرها درمتلب

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

  1. متغیرهای عددی: اعداد معمولی (واقعی) یا مختلط، بردارها، ماتریس ها و آرایه های چند بعدی. به یک عدد واقعی 8 بایت اختصاص داده می شود، یک عدد مختلط - 16. اعداد صحیح و واقعی تفاوتی ندارند.

الف) اعداد واقعی

A = 2 A = 2.0 B = -143.298 C = 1.23e-2

ب) اعداد مختلط

Q = 1 + 3i r = -4.6-7.45i S = 2 + 5j

واقعی (Q) - جزئی از عدد مختلط،

imag (Q) - بخش خیالی یک عدد مختلط،

abs (Q) - مقدار مطلق عدد مجموعه،

conj (Q) - عدد مختلط مزدوج،

زاویه (Q) - مقدار فاز (زاویه) عدد مختلط بر حسب رادیان.

ج) بردارها

بردارهای ردیف

a = 1: 3: 10 b = c = فضای خطی (13.53.5)

بردارهای ستونی

aa = a 'bb = cc = فضای خطی (13.53.5)' dd = (15:45) '

برای بردارهایی با اجزای مختلط: اگر y یک بردار مختلط است، y. 'بردار ستونی با اجزای یکسان است، و y' یک بردار ستونی با مؤلفه‌ها - اعداد مختلط مزدوج است.

د) ماتریس ها: M (i، j) - عنصری از ردیف i و ستون j. M (k) k امین عنصر ماتریس است که در یک ستون کشیده شده است.

A = --- a 1 2

A (2،2) (= 4) A (3) (= 2) -a A = (1 3 2 4)

A (3،4) = 10 --- а 1 2 0 0

اندازه (A) (=) = اندازه (A) (m = 3، n = 4)

A = A (:) -à کشش به یک ستون - ماتریس تبدیل به یک بردار می شود!

تغییر شکل (A, 3,4) -а بردار را به یک ماتریس 3x4 تبدیل می کند

A (,:) = -à ردیف اول و آخر را از ماتریس حذف می کند

A (:،) = à تمام ستون ها به جز آخرین ستون را حذف می کند

چند ماتریس خاص:

چشم (m, n) یک هایی در مورب اصلی هستند، بقیه صفر هستند (چشم (m) ماتریس هویت مربع mxm است)

ones (m, n) - ماتریس یکها

صفر (m، n) - ماتریس صفرها

rand (m, n) - یک ماتریس mxn پر از اعداد تصادفی از 0 تا 1

C = دور (1 + 100 * رند (10،10)) یک ماتریس 10x10 است که با اعداد صحیح تصادفی از 1 تا 100 پر شده است.

عملیات ماتریسی ساده:

دیاگ (A) بردار عناصر روی قطر اصلی ماتریس A است،

دیاگ (diag (A)) یک ماتریس مورب مربع با عناصر مورب، مانند A، و صفر است.

triu (A) tril (A) ماتریسی است با قسمت‌های بالایی یا پایینی از A که با صفرها پوشانده شده است.

  1. متغیرهای نمادین

cvb = "مسکو پایتخت روسیه است"

رشته کاراکتر به آپاستروف های منفرد محدود شده است (روی کلید با حرف روسی "e") و با رنگ هایلایت شده است.

هر کاراکتر 2 بایت است و به عنوان یک عنصر جداگانه از بردار رشته کاراکتر در نظر گرفته می شود. بنابراین، اگر عملیات transpose را cvb ' تنظیم کنیم، بردار ستونی با 31 عنصر به دست می‌آید.

می توانید متغیرهای نمادین را به اعداد و بالعکس ترجمه کنید.

آنها معمولاً هنگام نمایش نتایج، نمودارها، برچسب ها، پیام ها استفاده می شوند.

کنترل روی متغیرها

روش 1 - در پنجره Workspace

روش 2 - فرمان who - لیستی از متغیرهای تعریف شده در یک لحظه معین از زمان را ارائه می دهد.

روش 3 - دستور whos - اطلاعات کامل تری در مورد متغیرها می دهد (Name Size Bytes Class)

تمیز کردن حافظه

واضح - پاکسازی کامل همه متغیرها (یا متغیرهای پاک)

پاک کردن var1، var2،… - پاک کردن متغیرهای جداگانه var1، var2،….

1.3. توابع درمتلب

توابع در متلب برنامه هایی هستند که برخی از عملیات رایج را روی داده ها انجام می دهند. برای انجام این عملیات و به دست آوردن نتایج مورد نیاز، کافی است نام تابع را مشخص کنید و احتمالاً مقداری داده اولیه را مشخص کنید. بنابراین، 3 مفهوم با مفهوم تابع در اینجا (مانند هر زبان دیگری) مرتبط است: نام تابع، مجموعه داده ورودی (varargin) و مجموعه داده خروجی (varargout). علاوه بر این، مفاهیم تعداد ورودی (nargin) و تعداد خروجی (nargout) تعریف شده است.

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

توابع سیستم به توابع داخلی و کتابخانه ای طبقه بندی می شوند. توابع کتابخانه به شکل برنامه های زبان M که در فایل هایی با نام تابع و با پسوند * .m نوشته شده اند در سیستم ذخیره می شوند. متون این برنامه ها برای مشاهده توسط کاربران در دسترس است (دایرکتوری \ جعبه ابزار \ matlab \ در محل نصب متلب). به عنوان مثال، می توانید برای مشاهده یک فایل m با تابعی برای محاسبه مقدار لگاریتم اعشاری (\ جعبه ابزار \ matlab \ elfun \ log10.m) باز کنید. هنگام اجرا، اپراتورهای این برنامه ها ابتدا به دستورالعمل های سیستم اجرایی کامپیوتر ترجمه می شوند (تفسیر می شوند) و سپس اجرا می شوند. توابع داخلی به صورت کامپایل شده در سیستم ذخیره می شوند، نیازی به ترجمه ندارند و بنابراین سریعتر از موارد کتابخانه ای اجرا می شوند. دایرکتوری سیستم برای چنین توابعی حاوی فایل‌هایی است که مشابه فایل‌های کتابخانه نام‌گذاری شده‌اند، اما فقط حاوی نظراتی درباره استفاده از توابع هستند. برای مثال، می‌توانید فایل مربوط به تابع توان (\ toolbox \ matlab \ elfun \ exp.m) را باز کنید.

1.4. عبارات درمتلب

عبارت یک ساختار زبانی است که شامل عناصر زبان (ثابت، متغیرها، توابع) است که با استفاده از کاراکترهای متصل کننده که عملیات انجام شده در هنگام محاسبه مقدار یک عبارت را مشخص می‌کنند، به یکدیگر مرتبط شده‌اند. بسته به نتیجه به دست آمده پس از انجام عملیات موجود در عبارت، عبارات عددی (Nexpression)، نمادین (Cexpression) و منطقی (Lexpression) وجود دارد.

مقالات مرتبط برتر