folder Tahribat.com Forumları
linefolder Programlama Genel
linefolder Matlab'de Sınıflandırma Problemi



Matlab'de Sınıflandırma Problemi

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Mythbusters
    Mythbusters's avatar
    Kayıt Tarihi: 07/Aralık/2007
    Erkek

    merhaba arkadaşlar bu aralar matlab kullanarak bir iş üzerinde çalışıyorum meraktan. daha önce uğraşanlar olmuştur sınıflandırma işleriyle fakat ben biraz farklı birşey istiyorum sadece basit bi kısım değişiklik. Şimdi sınıflandırma yapmak isteyenlerin en baba kullandığı veri fisher's Iris datadır fakat ben bu veriyi txt olarak matlaba load etmek istiyorum herhangi data formatında değil yani. load ettikten sonrada sınıflandıracağım tek problemim load etmek. load etmek için kullandığım kodlar:

    a=zeros(500,4);

    s=cell(500,1);

    cnt=0;

    fid=fopen('irisdata.txt');

    while feof(fid)

      cnt=cnt+1;

      at=fscanf(fid,'%g,%g,%g,%g');

      st=fscanf(fid,',%s');

      a(cnt,:)=at;

      s{cnt,:}=st;

    end

     

    bu kodlarda bir döngü sağlayarak verileri sırayla okutmak ve txt dosyasından matlabe aktarmak fakat yaptığımda ne isim olarak görebiliyorum ne de sınıflandırma kriterlerini doğru alabiliyorum. hücrelerde versicolor tarzı şeyler yazması gerekirken [] ve sınıflandırmada kullanılacak verilerde 0 yazıyor.

    buyrun bu da txt halindeki verileri linki http://www.dosya.tc/server35/BsOQel/irisdata.txt.html  

    teşekkürler 



    soralım öğrenelim, öğrenelim soralım.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YekteranBaymedir
    YekteranBaymedir's avatar
    Kayıt Tarihi: 10/Temmuz/2009
    Homo

    ekrana bir adet at ve st bastırabilir misin çıktıyı merak ettim

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Mythbusters
    Mythbusters's avatar
    Kayıt Tarihi: 07/Aralık/2007
    Erkek
    Daft bunu yazdı

    ekrana bir adet at ve st bastırabilir misin çıktıyı merak ettim

    hocam hücreler boş kalıyor kısaca 

    0 [] 

    şeklinde sanırım feof ta bir hata varda çözemedim


    soralım öğrenelim, öğrenelim soralım.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YekteranBaymedir
    YekteranBaymedir's avatar
    Kayıt Tarihi: 10/Temmuz/2009
    Homo

    oyun oynuyordum bakamadım

    scilab kuruyorum şuan umarım temel matlab komutlarını destekliyordur

    zaten büyük ihtimal fscan'da hata var (daha önce hiç kullanmadım verdiğin kodları, deneye deneye bulacam)

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cicosz
    cicosz's avatar
    Kayıt Tarihi: 22/Ağustos/2005
    Erkek

    fid -1 oluyor. 0 ya da 1 alması lazım. hocam sen şimdi o txt dosyasındaki verileri okumak istiyorsun değil mi problem şu aşamada bu. doğru mu anladım

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    tuncaxxz
    tuncaxxz's avatar
    Kayıt Tarihi: 23/Ağustos/2005
    Erkek

     fid=fopen('irisdata.txt');

    C=textscan(fid,'%s',150,'delimiter','\n');

    for i=1:150

    d{i}=textscan(C{1,1}{1,i},'%d %d %d %s',150,'delimiter',',');

    end

     

    d'nin içinden istediklerini alırsın hocam


    punto cero
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YekteranBaymedir
    YekteranBaymedir's avatar
    Kayıt Tarihi: 10/Temmuz/2009
    Homo
    tuncaxxz bunu yazdı

     fid=fopen('irisdata.txt');

    C=textscan(fid,'%s',150,'delimiter','\n');

    for i=1:150

    d{i}=textscan(C{1,1}{1,i},'%d %d %d %s',150,'delimiter',',');

    end

     

    d'nin içinden istediklerini alırsın hocam

    i 1 to 150 yapmak yerine 1 to size(C) yapılmalı diye düşünüyorum (matlab'da matrix boyutu size mı hatırlamıyorum)

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Mythbusters
    Mythbusters's avatar
    Kayıt Tarihi: 07/Aralık/2007
    Erkek

    arkadaşlar yorumlarınız için çok sağolun ben problemi çözdüm kodları ekliyorum ihtiyacı olan arkadaşlar yararlanabilirler herşey için tekrar teşekkürler problem feof daymış.

    a=zeros(500,4);
    s=cell(500,1);
    fid=fopen('irisdata.txt');
    cnt=0;
    cnt1=0;
    while ~feof(fid)
      
      
      at=fscanf(fid,'%g,%g,%g,%g');
      if ~isempty(at)
      cnt=cnt+1;
      a(cnt,:)=at;
      end
      st=fscanf(fid,',%s');
      if ~isempty(st)
      cnt1=cnt1+1;
      s{cnt1}=st;
      end
    end
      a=a(1:cnt,:);
      s=s(1:cnt1,:);

     


    soralım öğrenelim, öğrenelim soralım.
Toplam Hit: 1312 Toplam Mesaj: 8