اطلاعیه

Collapse
No announcement yet.

پیدا کردن نزدیکترین عدد در matlab

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پیدا کردن نزدیکترین عدد در matlab

    سلام دوستان برای پیداکردن نزدیکترین عدد در متلب دستور خاصی داریم....؟؟؟؟
    برای مثال a=[10 25 38 63 79 ];
    واگه b=15 باشه حالا من می خوام برام نزدیکترین عدد در a رو بدست بیاره که جواب 10 است....
    هرگاه زندگی را جهنم دیدی, سعی کن پخته بیرون آیی, سوختن رو همه بلدند

    #2
    پاسخ : پیدا کردن نزدیکترین عدد در matlab

    نه
    دستور خاصی نداره
    میتونی ماتریستو سورت کنی(sort) بعد بزاری تو یه حلقه و با یدونه If نزدیک ترین عدد رو پیداکنی.کل اینا رو هم می تونی تو یه تابع بنویسی

    دیدگاه


      #3
      پاسخ : پیدا کردن نزدیکترین عدد در matlab

      نوشته اصلی توسط hadi_sl66
      نه
      دستور خاصی نداره
      میتونی ماتریستو سورت کنی(sort) بعد بزاری تو یه حلقه و با یدونه If نزدیک ترین عدد رو پیداکنی.کل اینا رو هم می تونی تو یه تابع بنویسی
      دوست عزیز می تونی الگوریتم کاریش رو بگی...
      هرگاه زندگی را جهنم دیدی, سعی کن پخته بیرون آیی, سوختن رو همه بلدند

      دیدگاه


        #4
        پاسخ : پیدا کردن نزدیکترین عدد در matlab

        بجای حلقه من پیشنهاد میکنم از این روش استفاده کنی فرض میکنیم اسم آرایه a هست
        1- با تابع sort آرایه رو مرتب کنی (بطور پیش فرض صعودی مرتب میشه)
        2- b=a(a<15) با این دستور اندیس عناصری که کوچیکتر از 15 هستند در b قرار میگیره
        3- ز=a(a>15) با این دستور اندیس عناصری که بزرگتر از 15 هستند در c قرار میگیره
        4- آخرین عنصر در b و اولین عنصر در C هر کدام به 15 نزدیکترین باشن جواب ما هستند
        لازم به ذکره که حلقه های متلب بسیار کندند و خود اونا هم توصیه شون استفاده از برداری سازی در متلب یعنی همین کاری که کردیم هست. اینکار شاید برای آرایه های کوچیک به نظر خوب نیاد اما برای آرایه های بزرگ تو سرعت بسیار تاثیر گذارند

        دیدگاه


          #5
          پاسخ : پیدا کردن نزدیکترین عدد در matlab

          سلام به همگی
          استفاده از دستور sort یک پیشنهاد اساسیه ولی من چون علاقه زیادی به استفاده از دستور find دارم، کد زیر رو پیشنهاد میکنم
          این کد زمانی بدرد میخوره که علاوه بر عدد موجود در ماتریس a به شماره اندیسش هم نیاز داشته باشین
          کد:
          clc
          a = [1 2 3 4 5 4 3 2 5 7 8];
          b = 3.2;
          p = find( min(abs(a-b)) == abs(a-b) )
          a(p)
          دستور find اندیس(هایی) از ماتریس a رو که حداقل فاصله رو از b داره پیدا میکنه و در p میریزه
          بعد a(p) هم مقادیر مورد نظر رو میده
          کد:
          p =
             3   7
          ans =
             3   3

          دیدگاه

          لطفا صبر کنید...
          X