اطلاعیه

Collapse
No announcement yet.

سوال در متلب

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

    سوال در متلب

    سلام به همه دوستان
    همون طور که میدونید با n بیت فضا میتونیم دو به توان n حالت مختلف متشکل از صفر و یک تشکیل بدیم.
    مثلا با سه بیت ،، هشت حالت مختلف متشکل از صفر و یک داریم.
    ***
    سوال من اینه که اگر به جای صفر و یک داشته باشیم یک و منفی یک چطور با متلب میتونم اون هشت حالت مختلف رو بدست بیارم.

    یعنی چطور میتونم هشت حالت مختلف زیر رو بدست بیارم
    1،1،1
    1،1،1-
    1،1-،1
    1-،1،1
    1-،1-،1
    1-، 1، 1-
    1،1-،1-
    1-،1-،1-

    ***
    اصلا نمیدونم از کجا شرو کنم :angry:
    اگر دستوری تاحدودی هم مربوط به این بحث باشه لطفا راهنمایی کنید خودم مابقیشو با هلپ متلب در میارم.

    با تشکر

    #2
    پاسخ : سوال در متلب

    سلام.
    اگه حالتی باشه که فقط دو مقدار داره (مثل همین 1- و 1) راحته:
    کد PHP:
    clear;clc;close all
    values 
    = [-1 1];
    slength 3;
    perm perms([1:slength]);
    combs zeros(slength slength);
    1;
    for 
    slength
      comb 
    combnk([slength] , i);
      for 
    size(comb 1)
        
    val ones(slength) * values(1);
        
    val(comb(j,:)) = values(2);
        
    combs(, :) = val;
        
    1;
      
    end
    end 
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
    اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
    یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"

    دیدگاه


      #3
      پاسخ : سوال در متلب

      سلام مجدد به دوستان
      برنامه بالا رو نوشتم و تا مقادیر slength = 10 جواب گرفتم و از کد های تولید شده توسط این برنامه استفاده کردم
      برای مقادیر بیشتر از 10 خطای زیر رو میده:

      Maximum variable size allowed by the program is exceeded.
      لطفا راهنمایی کنید چطوری میتونم برای مقادیر بیشتر از slenght=13 برنامه رو اجرا کنم.

      تشکر.

      دیدگاه


        #4
        پاسخ : سوال در متلب

        متلب به محدودیت اندازه متغیر رسیده، نمیشه کاری کرد مگه این که برنامه رو عوض کنی.
        یه راه دیگه اینه که مثلاً برای طول 13، یک بار با طول 10 و یک بار با طول 3 حالت ها رو به دست بیاری بعد ترکیبشون کنی. برای طول 3 میشه 8 حالت که هر کدوم از این 8 حالت رو یک بار کنار یکی از 1024 حالت طول 10 بذار. در نهایت مقادیر تکراری رو با دستور unique حذف کن.
        لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
        لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
        با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
        اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
        یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"

        دیدگاه


          #5
          پاسخ : سوال در متلب

          با سلام

          بنظرم می خوای انواع کدهای با طول مشخص را تولید کنی

          از دستور bi2di
          استفاده کن
          بعدش
          2a-1


          n=5;A=de2bi([0:2^n-1],n)

          راهنمایی خواستی صورت سوالتو برام ایمیل کن

          موفق
          http://www.4shared.com/office/wspNnTsI/AMUZESH_JAMEE_MATLAB.html

          دیدگاه


            #6
            پاسخ : سوال در متلب

            نوشته اصلی توسط متلب
            با سلام
            بنظرم می خوای انواع کدهای با طول مشخص را تولید کنی
            از دستور bi2di
            استفاده کن
            در صورتی که دستورات مختلف متلب رو بشناسی بعضی وقتا خیلی کار راحت تر میشه.
            با برنامه زیر کدهای دودویی ترتیب بهتری دارن.
            کد PHP:
            sLength 3;
            combL sLength;
            dec combL 1;
            bin de2bi(dec);
            bins num2str(bin);
            out zeros(combL sLength);
            for 
            :combL
              comb 
            regexprep(bins(, :),'0','-1');
              
            out(, :) = str2num(comb);
            end 
            لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
            لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
            با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
            اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
            یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"

            دیدگاه

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