Ana içeriğe atla

Birbirinden Farklı Random Sayı Dizisi Oluşturma

Rand() komutu ile birbirinden farklı sayı dizisi oluşturmak istiyoruz. Bunun için ihtiyacımız olan kodları aşağıda veriyorum.

Örneğin fonksiyonda sutun sayısını 10 olarak girdiniz. Bu fonksiyon size 2'den başlayarak 10'a kadar 9 sütunluk, birbirinden farklı sayılar dizisi üretecektir.


function[sayi]=genetic_algorithm(sutun)


        durum=1;

        i=1;

        while durum==1

            sayi(i)=round(2+(sutun-2)*rand());

            if i~=1

                s=i;

                while s~=1

                    while sayi(s-1)==sayi(i)

                        sayi(i)=round(2+(sutun-2)*rand());

                        s=i;

                    end

                    s=s-1;

                end


            end

            if length(sayi)==sutun-1

                durum=0;

            end

            i=i+1;

        end

         %random sayılardan aynısının bulunup

        %     bulunmadıgını kontrol eder

        for i=1:length(sayi)-1

            for j=i+1:length(sayi)

                if sayi(i)==sayi(j)

                    'aynı sayı var, algoritma hatalı'

%                     i,j

                end

            end

        end

end

Yorumlar

  1. Teşekkürler , bende bir şey ekleyeyim :)
    fonksiyonun sonuna ---> sayi=[sayi 1];
    eklerseniz sayılarınıza 1 i de eklersiniz...
    .
    .
    .
    sayi=[sayi 1];
    end ! ile bitecek

    YanıtlaSil
    Yanıtlar
    1. function[sayi]=genetic_algorithm(sutun)
      |
      Error: Function definitions are not permitted in this context.
      böyle bir hata veriyor

      Sil
  2. çalışmıyor hata veriyor bu
    function[sayi]=genetic_algorithm(sutun)
    |
    Error: Function definitions are not permitted in this context.
    bu hatayı veriyor

    YanıtlaSil
    Yanıtlar
    1. Fonksiyondan çıkartarak m file dosyası için de deneyin, denerken sutun degişkenine bir deger verin

      Sil

Yorum Gönder

Bu blogdaki popüler yayınlar

Matlab Operatörler

Matematiksel operatörler: +  Toplama –  Çıkarma *  Çarpma /  Bölme ^  Üst alma .* Elemanter çarpım ./  Elemanter bölme .^  Elemanter üst alma a+b  Boyutları aynı olan a ve b matrisini toplar. a-b  Boyutları aynı olan a ve b matrislerinin farkını alır. a*b  Sütun sayısı m olan a matrisiyle satır sayısı m olan b matrisini çarpar. a/b  b düzenli kare bir matrisse (determinantı sıfırdan farklıysa), aynı boyutlu a matrisiyle; a*inv(b)işlemini yapar. a.*b  Boyutları aynı olan a ve b matrislerinin elemanlarını karşılıklı olarak çarpar. a./b  Boyutları aynı olan a ve b matrislerinin elemanlarını karşılıklı oranlar. sqrt  Kök alma abs  Mutlak değer rats  Kesirli gösterim Mantıksal operatörler: &  Ve |  Veya ~  Değil /  Bölme Karar operatörleri: >  Büyüktür <  Küçüktür >=  Büyük eşittir <=  Küçük eşittir ==  Eşittir ~= ...

Matlab Sayının Tek yada Çift Olma Durumunun Belirlenmesi

Matlab Sayının Tek yada Çift Olma Durumunun Belirlenmesi Klavyeden girilen bir tamsayının tek mi çift mi oldugunu bulan program kodaları. 1. Yol: Bir tamsayının tek veya çift olma durumunun belirlenmesinin en basit yolu; tamsayının 2'ye göre modunu alıp sıfıra eşit olup olmadıgını kıyaslamaktır. 2. Yol: Matlabın saglamış oldugu 'rem' fonksiyonunu kullanmak. 1. Yol Kod Blogu: a=input( 'Tamsayı giriniz: ' ); disp( ' ' ); if (mod(a,2)==0)     disp( 'Girilen tamsayı çifttir' ); else     disp( 'Girilen tamsayı tektir' ); end 2.  Yol Kod Blogu:  rem(x,y)  şeklinde kullanır. Burada x bölünen , y ise bölen sayıdır. Program x’in y’ye bölünmesinde kalan değerini verir. a=input( 'Tamsayı giriniz: ' ); disp( ' ' ); if (rem(a,2)==0)     disp( 'Girilen tamsayı çifttir' ); else     disp( 'Girilen tamsayı tektir' ); end Matlab basit hesap makinesi yapım dersi için  tıklayınız