آموزش نحوه error یا خطایابی در متلب

آموزش نحوه خطایابی در متلب

خطا Matrix dimensions must agree زمانی نمایش داده می شود که قصد داشته ایم عملیاتی را بر روی دو ماتریس غیر هم اندازه انجام بدهیم، اما آن عملیات نیازمند آن بوده است که اندازه دو ماتریس، برابر باشد.

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

مثال :

 

clear all
close all
;clcA=2
B=[3 5];C=A/B

نتیجه :

 

??? Error using ==> mldivide
Matrix dimensions must agree.Error in ==> program at 8
C=A/B

دو روش را برای درست عمل کردن کد بالا، معرفی می کنیم :

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

کدها را به صورت زیر می نویسیم :

 

clear all
close all
clcA=2;
B=[3 5];C=A./B

نتیجه :

 

C =

۰٫۶۶۶۷    ۰٫۴۰۰۰

روش دوم : استفاده از حلقه for

کدها را به صورت زیر می نویسیم :

 

clear all
close all
;clcA=2
B=[3 5];for nn=1:2
;(C(nn)=A/B(nn
end
C

نتیجه :

 

C =

۰٫۶۶۶۷    ۰٫۴۰۰۰

خطاهای به شکل کلی Undefined function or method ‘…’ for input arguments of type ‘###’. در متلب :

در این مبحث قصد داریم علت به وجود آمدن یک پیام خطا را در نرم افزار متلب توضیح بدهم که به صورت کلی زیر می باشد :

Undefined function or method ‘…’ for input arguments of type ‘###’.

که در عبارت فوق، به جای علامت های … ، نام یک تابع و به جای علامت های ### ، نام یک نوع متغیر نوشته می شود. به عنوان مثال :

Undefined function or method ‘syms’ for input arguments of type ‘char’.

معمولا این پیام خطا به دو دلیل به وجود می آید :

اول اینکه ممکن است که تابع (function) مورد نظر درون مسیر (path) یا مسیرهای تعریف شده برای نرم افزار متلب نباشد و بنابراین راه حل این است که فولدر حاوی آن تابع را به مسیرها اضافه کنید یا current folder را به آدرس آن فولدر حاوی تابع، تغییر دهید. در این مورد، بد نیست نگاهی به کلید زیر بیندازید :
دوم اینکه ممکن است آن تابع یک تابع داخلی نرم افزار متلب باشد و به دلیل قدیمی بودن شماره نرم افزار متلب شما، این تابع را نداشته باشید. توصیه این است که یک شماره جدید نرم افزار متلب را نصب کنید،

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

which syms

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

C:\Program Files\MATLAB\R2011a  oolbox\symbolic\symbolic\syms.m

بنابراین سپس دوست شما این فایل با نام syms.m را برایتان ارسال می کند و همچنین آدرس را هم به شما می گوید تا بدانید که فایل را در چه بخشی از فولدر محل نصب نرم افزار متلب باید کپی کنید.