کلیدستان

نسخه‌ی کامل: شمارش تعداد فراوانی های یک انتقال در ماتریس، در متلب
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
با سلام. بنده یک برنامه نوشتم حالا رسیدم به یک ماتریس سطری با 800 ستون که تمام دارایه های آن اعداد 1 یا 2 یا 3 هستند. میخوام تعداد تمام انتقال هایی را بدست بیارم  مثلا از حالت 1 بلافاصله به حالت 2 رفته یا از حالت 1 به 1 رفته یا.... برای روشن کردن بهتر سوالم فرض کنید بردار زیر را داریم:  
[1 1 2 3 2 1 3 2 1 2 3 3] =K میبینیم تعداد انتقال هایی که بلافاصله از حالت 2 به حالت 1 رفته در این مثال 2 تا هست. برای شمارش انتقال ها در چنین حالتی چکار باید کنم؟
ممنون میشم کمکم کنید.
یک جواب برای سوالم یافتم. خیلی جالبه کاملا جواب درست رو بهم میده ولی متاسفانه متوجه نمیشم این کد ها چطور عملیات را انجام میدن؟ مثلا ماتریس Xرا مثال زده , و کد زیر را برای آن نوشته. و در متلب جواب درست را هم میده.لطف کنید توضیح دهید که چطور این عملیات انجام میشه؟

کد:
x=[1 6 1 6 4 4 4 3 1 2 2 3 4 5 4 5 2 6 2 6 2 6];
sparse(x(1:end-1),x(2:end),1)
(۱۳۹۳/۰۷/۰۱, ۰۴:۴۸ ب.ظ)'مریم69' نوشته: [ -> ]با سلام. بنده یک برنامه نوشتم حالا رسیدم به یک ماتریس سطری با 800 ستون که تمام دارایه های آن اعداد 1 یا 2 یا 3 هستند. میخوام تعداد تمام انتقال هایی را بدست بیارم  مثلا از حالت 1 بلافاصله به حالت 2 رفته یا از حالت 1 به 1 رفته یا.... برای روشن کردن بهتر سوالم فرض کنید بردار زیر را داریم:  
[1 1 2 3 2 1 3 2 1 2 3 3] =K میبینیم تعداد انتقال هایی که بلافاصله از حالت 2 به حالت 1 رفته در این مثال 2 تا هست. برای شمارش انتقال ها در چنین حالتی چکار باید کنم؟
ممنون میشم کمکم کنید.
 

سلام.
من کد زیر را نوشتم :

کد:
clear all
close all
clc

K=[1 1 2 3 2 1 3 2 1 2 3 3]
K_length=length(K);
first_number=2;
second_number=1;
number_of_pattern=0;
for nn=1:K_length-1
    if (K(nn)==first_number && K(nn+1)==second_number)
        number_of_pattern=number_of_pattern+1;
    end
end
number_of_pattern

که در آن، first_number برابر عدد اول و second_number برابر عدد دوم می باشد (همان دو عددی که پشت سرهم قرار می گیرند و تعداد دفعات مربوط به آنها را می خواهیم به دست آوریم). تعداد دفعات قرارگیری این الگو نیز در متغیر number_of_pattern ذخیره خواهد شد. 
نتیجه اجرای کد متلب، به صورت زیر می باشد :

کد:
K =

     1     1     2     3     2     1     3     2     1     2     3     3


number_of_pattern =

     2