error یا خطا در متلب
خطاهای مختلفی در نرم افزار matlab رخ میدهد که برای رفع آنها باید بر دستورات matlab و نحوه استفاده از آنها تسلط کافی داشت. در ادامه برخی خطاها و نحوه رفع آنها توسط مثال تشریح میشود.
خطا Matrix dimensions must agree زمانی نمایش داده میشود که قصد داشته ایم عملیاتی را بر روی دو ماتریس غیر هم اندازه انجام بدهیم، اما آن عملیات نیازمند آن بوده است که اندازه دو ماتریس، برابر باشد.
به مثال زیر توجه کنید:
مثال:
clear all
close all
clcA=2;
B=[3 5];C=A/B
close all
clcA=2;
B=[3 5];C=A/B
نتیجه :
??? Error using ==> mldivide
Matrix dimensions must agree.Error in ==> program at 8
دو روش را برای درست عمل کردن کد بالا، معرفی میکنیم:
روش اول (روش ساده تر): استفاده از علامت نقطه که بیانگر این است که عملگر بعد از آن، برای تک تک عناصر ماتریس، به کار رود.
کدها را به صورت زیر مینویسیم:
clear all
close all
clcA=2;
B=[3 5];C=A./B
C =
0.6667 0.4000
close all
clcA=2;
B=[3 5];C=A./B
نتیجه :
C =
0.6667 0.4000
روش دوم: استفاده از حلقه for
کدها را به صورت زیر مینویسیم:
clear all
close all
clcA=2;
B=[3 5];for nn=1:2
C(nn)=A/B(nn);
end
C
نتیجه :
C =
0.6667 0.4000
خطاهای به شکل کلی 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 را به آدرس آن فولدر حاوی تابع، تغییر دهید. در این مورد، بد نیست نگاهی به کلید زیر بیندازید:
اول اینکه ممکن است که تابع (function) مورد نظر درون مسیر (path) یا مسیرهای تعریف شده برای نرم افزار متلب نباشد و بنابراین راه حل این است که فولدر حاوی آن تابع را به مسیرها اضافه کنید یا current folder را به آدرس آن فولدر حاوی تابع، تغییر دهید. در این مورد، بد نیست نگاهی به کلید زیر بیندازید:
کلید شماره ۱۷۷ دوم اینکه ممکن است آن تابع یک تابع داخلی نرم افزار متلب باشد و به دلیل قدیمی بودن شماره نرم افزار متلب شما، این تابع را نداشته باشید. توصیه این است که یک شماره جدید نرم افزار متلب را نصب کنید، اما اگه عجله دارید میتوانید از دوستی که یک شماره جدید متلب را دارد بخواهید که فایل مربوط به آن تابع داخلی را برایتان ارسال کند. مثلا فرض کنید که شما تابع syms را نداشته باشید، دوست شما باید عبارت زیر را در نرم افزار متلب خود اجرا کند تا مسیر فایل مربوط به تابع syms نمایش داده شود:
which syms
مثلا نتیجه میتواند به صورت زیر باشد:
C:\Program Files\MATLAB\R2011a toolbox\symbolic\symbolic\syms.m
بنابراین سپس دوست شما این فایل با نام syms.m را برایتان ارسال میکند و همچنین آدرس را هم به شما میگوید تا بدانید که فایل را در چه بخشی از فولدر محل نصب نرم افزار متلب باید کپی کنید.
منبع:سیم پاور
انتشار یافته: ۱
در انتظار بررسی: ۰
غیر قابل انتشار: ۰
سلام در زمان ذخیره برنامه نوشته شده از من add to task را نمی پرسد و زنان اجرا ب نامه ارور زیر را می دهد
Undefined function or variable 'program1'
Undefined function or variable 'program1'
از ارسال دیدگاه های نا مرتبط با متن خبر، تکرار نظر دیگران، توهین به سایر کاربران و ارسال متن های طولانی خودداری نمایید.
لطفا نظرات بدون بی احترامی، افترا و توهین به مسئولان، اقلیت ها، قومیت ها و ... باشد و به طور کلی مغایرتی با اصول اخلاقی و قوانین کشور نداشته باشد.
در غیر این صورت، «برق نیوز» مطلب مورد نظر را رد یا بنا به تشخیص خود با ممیزی منتشر خواهد کرد.