انجمن سایت کلیدستان


رتبه موضوع:
  • 1 رای - 3 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
cell

cell

#1
 باسلام
یه بردار به شکل زیر دارم 

کد:
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 ذخیره کنم به طوری که هر عدد در اون آرایه یک بار بیاد و تعداد تکرارش در  مقابلش نشون داده بشه. باید طوری کد بنویسم که برای هر بردار مشابه با همین ابعاد بتونم اجرا کنم. از چه دستوری میتونم برای شمردن تعداد هر عدد استفاده کنم؟ ممنون میشم راهنمایی کنید.
با تشکر 
 
پاسخ

cell

#2
سلام.
کد زیر را ببینید :

کد:
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

لطفا در ارسال های بعدی، از دکمه مخصوص کد در ادیتور، برای درج کدها استفاده کنید.
موفق باشید.
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

cell

#3
 باسلام و خسته نباشید.
حالا اگر بخواهم از تکرارهای پشت سر هم جلوگیری کنم و تعداد تکرارهای پشت سر هم رو هم ذخیره کنم چیکار باید بکنم.
مثلا برای 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]


 
پاسخ

cell

#4
سلام.
یک حلقه for بسازید و در آن، تک تک عناصر A را به صورت گام به گام فراخوانی کنید. بر اساس اینکه عنصر بعدی بردار A با عنصر فعلی برابر است یا نه، مقادیر numbers و count را بسازید.
مثلا در حلقه، یک متغیر به نام current ذخیره می کنید. ابتدا مقدار آن برابر 1 است که اولین عنصر A می باشد، این مقدار در اولین عنصر بردار numbers قرار می گیرد. یک متغیر هم برای تعداد تکرار عنصر فعلی تعریف کنید، که مقدار آن، در بردار count ذخیره خواهد شد. بعد از شمارش تعداد تکرار 1 ، عدد حاصل را در اولین عنصر count ذخیره کنید و حالا current تبدیل به عدد بعدی که در بردار A شناسایی کرده اید، می شود.
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط asal89 ، شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان