بازدید: ۴١۴

پیغامهای خطا و نحوه تفسیر دستورات در MATLAB (آموزش MATLAB)

بازگشت به صفحه اصلی آموزش MATLAB

 

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

                 

خطا در MATLAB

 

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

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

 

نحوه جستجو MATLAB برای بررسی دستورات

 

یکی از قابلیتهای MATLAB این است که می تواند از نام تابع بعنوان نام متغیر استفاده کند. بعنوان مثال تابع sqrt() ، تابعی است برای محاسبه ریشه دوم یک عدد صحیح:

 

نحوه  نمایش خطا

 

 حال فرض کنید که می خواهید پاسخ این تابع را به متغیری به نام sqrt تخصیص دهید:

 

تفسیر پیغام خطا

 

اینکار در MATLAB امکان پذیر است اگرچه ممکن است فکر چندان خوبی نباشد. در MATLAB، متغیرها بر توابع اولویت دارند که در نتیجه نمی توان دیگر از آن بعنوان تابع استفاده کرد. با وارد کردن دستورات زیر پی به این مسئله می بریم:

 

بررسی دستورات در MATLAB

 

در حالت اول، sqrt، پاسخ sqrt=2 را تولید می کند که برابر با همان مقدار متغیر sqrt است. در حالت دوم sqrt(1) پاسخ ans=2 را نشان می دهد که اگر منظور ما ریشه دوم عدد 1 بوده باشد جواب مدنظر ما را نشان نداده است و در حالت سوم که sqrt(4) باعث نمایش پیغام خطا می شود.

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

برای اینکه مجددا از تابع مربوطه استفاده کنید، باید ابتدا متغیر را حذف کنید. برای این منظور باید از دستور Clear استفاده کنید:

 

حذف متغیر در MATLAB

 

همچنین می توانید متغیرهای خاصی را با انتخاب آنها در پنجره Workspace و فشردن حذف کنید یا بر روی متغیر راست کلیک کرده و از منوی نمایش داده شده گزینه delete را انتخاب کنید.

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

هنگامی که دستوری اجرا می شود، برنامه MATLAB ابتدا پنجره WorkSpace را می گردد تا ببیند که آیا متغیری به این نام وجود دارد یا خیر. اگر وجود داشته باشد، MATLAB مقدار متغیر را بر می گرداند. اگر متغیری به این نام نباشد، آنگاه پوشه جاری(Current Folder) را می گردد. اگر تابعی به این نام پیدا کرد، انتخاب شده و اجرا می شود. اگر تابعی پیدا نشد، آنگاه شروع به جستجو در پوشه هایی که در مسیر جستجوی از پیش تعریف شده قرار دارند می کند تا ببیند که آیا می تواند تابعی به همان نام در آنجا پیدا کند یا خیر. در صورتی که پیدا کرد، انتخاب و اجرا می کند. اگر در این مسیر هم نتوانست چیزی پیدا کند، پیغام خطایی را نمایش می دهد.

 

بازگشت به صفحه اصلی آموزش MATLAB

 

طراحی سایت و سئو توسط ضابط