اطلاعیه

Collapse
No announcement yet.

مشکل با عددهای تکراری در یک آرایه

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

    مشکل با عددهای تکراری در یک آرایه

    سلام دوستان چه جوری عددهای تکراری رو در یک آرایه پاک کنم...
    a=[1 5 96 5 8 77 5 1];
    می خوام بشه a=[96 8 77];
    هرگاه زندگی را جهنم دیدی, سعی کن پخته بیرون آیی, سوختن رو همه بلدند

    #2
    پاسخ : مشکل با عددهای تکراری در یک آرایه

    سلام
    کد:
    a = [1 2 3 4 5 5 6 6 6 7 6 1]
    p = [];
    for i=1:length(a)  
      pf = find( a==a(i) );
      if length(pf) > 1
        p = [p pf];
      end
    end
    a(p)=[]
    ابتدا با دستور find عناصری که برابر با a(i) هستند را پیدا میکند و اندیسهایی از ماتریس a را که با a(i) برابر هستند در متغیر pf میریزد. بعد با دستور length طول pf را اندازه میگیرد. اگر طولش بیش از یک باشد به این معنی است که مقدار a(i) بیش از یکبار تکرار شده است. حال که چنین است مقدار یا مقادیر pf را در p ذخیره میکند. وقتی از حلقه for خارج شویم، متغیر p شامل تمام اندیسهایی است که تکراری هستند. حالا کافی است که دستور[]= a(p) اجرا شود تا تمام مقادیر تکراری حذف شوند.
    کد:
    a =
       1   2   3   4   5   5   6   6   6   7   6   1
    a =
       2   3   4   7
    >>

    دیدگاه

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