فرض کنید ما یک ماتریس به شرح زیر داریم:

          1200  5.0  0.25    1.1
data = 1400  4.1  0.23  0.8
1500  3.2   0.22  0.3

به عنوان مثال ، فرض کنید ستون اول ماتریس نشان دهنده ارتفاع است ، به عنوان مثال ، ستون دوم نشان دهنده دما ، ستون سوم نشان دهنده چگالی و ستون چهارم نشان دهنده فشار است.
بنابراین ، با توجه به این تعریف ، می دانیم که به عنوان مثال ، در ارتفاع 1200 ، دما برابر با 5 ، تراکم برابر با 25/0 و فشار برابر با 1.1 است. یا وقتی فشار 0.8 است ، چگالی 23/0 است ، یا وقتی دما 3.2 است ، ارتفاع 1500 است.
الف- حال فرض کنید کسی از ارتفاع 1420 بپرسد ، مثلاً دما چقدر است؟
ب- به عنوان مثال ، اگر چگالی 2315/0 باشد ، فشار چقدر است؟
ج- یا اگر ارتفاع 1100 باشد ، دما چقدر است؟ یا اگر ارتفاع 1600 باشد ، فشار چقدر است؟
در مورد A و ، بدیهی است که باید درون یابی انجام شود و در مورد C ، بدیهی است که باید درون یابی انجام شود.
اکنون ما می خواهیم دستورات داخلی سازی و برون سازی را در MATLA توضیح دهیم.
دستور interp1 کار داخل و خارج از MATLA را برای ما کامل می کند.
دستور interp1 دارای سه ورودی است:

interp1 (A ، ، C)

فرض کنید می خواهیم دمای 1420 ارتفاع را حل کنیم؟ بنابراین ، ما باید با ارتفاع و دما کنار بیاییم. C متغیر شناخته شده ای است که داریم. آن ارتفاع 1420 است. بنابراین C برابر با 1420 است.
با این حال ، A و دو نوع داده هستند که MATLA با توجه به مطابقت بین آنها و پاسخ باید آنها را در C رهگیری کند. برای اینکه یادآوری آن برای شما راحت تر شود ، اگر می خواهم آن را بگویم ، باید بگویم C و A باید یکسان باشند. بنابراین ، متوجه می شویم که A نیز باید دارای قد باشد. اما باید چه جنسیتی داشته باشد؟ در میان ناشناخته ها ، موارد ناشناخته در اینجا یک مشکل دما است.
اکنون که دانستیم که A باید داده های ارتفاع و باید داده های دما باشد ، ما به ماتریس داده برمی گردیم. کدام ستون داده های ارتفاع را نشان می دهد؟ اولین ستون ماتریس. بنابراین A اولین ستون ماتریس است ، بنابراین A = داده (: ، 1).
کدام ستون داده های دما را نشان می دهد؟ ستون دوم ماتریس. بنابراین ​​ستون دوم ماتریس است ، بنابراین ​​= داده (: ، 2).
اکنون که همه چیز روشن است ، می توانیم از دستور interp1 استفاده کنیم:

>>interp1(data(:,1) , data(:,2) , 1420)

این دستور یعنی آقای متلب ، شما بین ستون اول و ستون دوم قرار می گیرید و با شماره 1420 ارتباط برقرار می کنید. این بدان معنی است که اگر 1420 یکی از اعداد ستون اول است ، پس شماره مربوطه در ستون دوم کدام است؟

امیدوارم بفهمید A ، و C چیست.
اکنون می توانید به راحتی جواب b را بدهید:

>>interp1(data(:,3),data(:,4),0.2315)

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

linear , nearest , spline , pchip , cubic , v5cubic

پس اگه روش رو ننویسیم به طور پیش فرض اون رو linear میگیره:

>>interp1(data(:,1) , data(:,2) , 1420)

برابر است با

>>interp1(data(:,1) , data(:,2) , 1420 , ‘linear’)

اگه خواستید روش رو عوض کنید به جای کلمه linear میتونید اسامی دیگه رو که براتون نوشتم بنویسید:

>>interp1(data(:,1) , data(:,2) , 1420,’cubic’)

حالا بر میگردیم به بخش ج (اگه ارتفاع 1100 باشه دما چقدره) که باید برون یابی انجام دهیم. خب! دستور رو می نویسیم:

>>interp1(data(:,1) , data(:,2) , 1100 )

در اینجا MATLA پاسخ NaN را به شما می دهد. دلیل ش چیه؟
دلیل این امر این است که دستور interp1 به طور پیش فرض درون یابی را انجام می دهد و اگر می خواهید کار استخراج را برای خود انجام دهید ، باید 2 کار انجام دهید:
1- ابتدا در دستور interp1 باید کلمه EXTRA را وارد کنید تا MATLA بفهمد که باید استخراج شود.
2- ثانیا مثل درون یابی نیست که اگر روش را به آن معرفی نکنید یک خط می کشد. در برون یابی ، شما باید روش را نیز توضیح دهید.
بنابراین ما باید اینگونه بنویسیم:

>>interp1(data(:,1) , data(:,2) , 1100 ,’extrap’ , ‘linear’)

یا مثلا

>>interp1(data(:,1) , data(:,2) , 1600 , ‘extrap’, ‘cubic’)

دستور interp1 یک عملکرد درون یابی و برون یابی بعدی را برای شما انجام می دهد ، که همان درون یابی بعدی است که در بیشتر برنامه های مهندسی استفاده می شود. اما اگر می خواهید بیشتر بدانید ، می توانید با کمک نرم افزار بروید و درونیابی و برون یابی دو بعدی با دستور interp2 و سه بعدی با دستور مصاحبه را بخوانید.

دیدگاه بگذارید