کلیدستان

نسخه‌ی کامل: cell
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
 باسلام
یه بردار به شکل زیر دارم 

کد:
Columns 1 through 10

12 12 11 10 9 7 6 5 5 5

Columns 11 through 20

3 2 2 2 2 2 2 2 2 1

Columns 21 through 30

1 1 1 1 1 1 1 1 1 1

Columns 31 through 40

1 1 1 1 1 1 1 1 1 1

Columns 41 through 50

1 1 1 1 1 1 1 1 1 1

Columns 51 through 60

1 1 1 1 1 1 1 1 1 1

باید این بردارو تو یه cell ذخیره کنم به طوری که هر عدد در اون آرایه یک بار بیاد و تعداد تکرارش در  مقابلش نشون داده بشه. باید طوری کد بنویسم که برای هر بردار مشابه با همین ابعاد بتونم اجرا کنم. از چه دستوری میتونم برای شمردن تعداد هر عدد استفاده کنم؟ ممنون میشم راهنمایی کنید.
با تشکر 
 
سلام.
کد زیر را ببینید :

کد:
clear all
close all
clc

A=[1 2 2 3 3 4 4 4 5 5]
numbers=unique(A) % provides sorted unique list of elements
count=hist(A,numbers) % provides a count of each element's occurrence

ابتدا با دستور  unique ، اعداد به کار رفته در بردار A را شناسایی کرده ایم و سپس، با دستور  hist ، تعداد تکرار معادل آنها را به دست آورده ایم.
نتیجه اجرای کد متلب بالا :

کد:
A =

     1     2     2     3     3     4     4     4     5     5


numbers =

     1     2     3     4     5


count =

     1     2     2     3     2

لطفا در ارسال های بعدی، از دکمه مخصوص کد در ادیتور، برای درج کدها استفاده کنید.
موفق باشید.
 باسلام و خسته نباشید.
حالا اگر بخواهم از تکرارهای پشت سر هم جلوگیری کنم و تعداد تکرارهای پشت سر هم رو هم ذخیره کنم چیکار باید بکنم.
مثلا برای numbers, A و count به شکل زیر تشکیل بشه؟



کد:
A=[1 3 3 3 3 2 2 4 4 4 3 3]
numbers=[1,3,2,4,3]
count=[1,4,2,3,2]


 
سلام.
یک حلقه for بسازید و در آن، تک تک عناصر A را به صورت گام به گام فراخوانی کنید. بر اساس اینکه عنصر بعدی بردار A با عنصر فعلی برابر است یا نه، مقادیر numbers و count را بسازید.
مثلا در حلقه، یک متغیر به نام current ذخیره می کنید. ابتدا مقدار آن برابر 1 است که اولین عنصر A می باشد، این مقدار در اولین عنصر بردار numbers قرار می گیرد. یک متغیر هم برای تعداد تکرار عنصر فعلی تعریف کنید، که مقدار آن، در بردار count ذخیره خواهد شد. بعد از شمارش تعداد تکرار 1 ، عدد حاصل را در اولین عنصر count ذخیره کنید و حالا current تبدیل به عدد بعدی که در بردار A شناسایی کرده اید، می شود.