folder Tahribat.com Forumları
linefolder Programlama Genel
linefolder Matlab Fscanf Komut Yardım?



Matlab Fscanf Komut Yardım?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    EdepsizPenguen
    EdepsizPenguen's avatar
    Kayıt Tarihi: 24/Mayıs/2012
    Erkek

    İyi günler müridler, staj yaptığım yerde matlab ile hesaplama yazılımı ile uğraşıyorum bi aşamada takıldım sizden yardımınızı rica ediyorum, konu şu;

     
    X00100000Y07115613R09631
    X00100000Y07144019R09734
    X00100000Y07172425R10150
    X00100000Y07200831R10746
    X00100000Y07229237R11369
    X00100000Y07257643R11903
    X00100000Y07286049R12295
    X00100000Y07314455R12546
    X00100000Y07342861R12684
    X00100000Y07371267R12745
    ...
    ..
    .
     
    bu şekilde tanımlanmış (devam eden) bi dosyayı ben rakamlarına ayıklamak isiyorum, burada fark edeceğiniz gibi X yazan yerden sonraki kısım X kordinatını Y yazan yerden sonraki kısım Y kordinatını R yazan yerden sonraki kısımda Radius nu veriyor, matlab ile bu şekilde çıktısı olan bi dosyayı ben X , Y , R şeklinde satır sütun haline getirmek istiyorum bu konuda kullanabileceğim bir function yada yöntem varmı yani bu dosyayı yapmak istediğim şekil; (rakamlar birbirini tutmayabilir örnek olması için verdim)
     
    100000 8954705 9097
    100000 8989347 9094
    100000 9023989 10637
    100000 9058631 12072
    100000 9093273 12669
    100000 9127915 12796
    100000 9162557 12803
    100000 9197199 12794
    100000 9231841 12782
    100000 9266483 12769
    beyler bir fikriniz varsa ve paylaşırsanız sevinirim, özet: bu şekilde olşturulmuş bi data dosyayı matlaba atıp 2. formatdaki gibi data olarak girmek istiyorum ne yapabilrim.?
     
    -------
     
    daha önce hocama sormuştum o bana datayı fscanf ile tarayabileceğimi ve bunları birer string olarak atar isem istediğim formatda datalar alabileceğimi söylemişti ama fscanf kullanımı hakkında çok bilgim yok, ve bu şekideki bi data işleme ile uğraşmadımdı şimdi bilenlerin yardım etmesini rica ediyorum, buralarda olucam yapabilecek arkadaş olursa mesaj atabilrse daha hızlı çözüme varırız diye düşünüyorum.. kolay gele

    Yüksek Fizik Mühendisi - Optik Sistem Mühendisi
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    EdepsizPenguen
    EdepsizPenguen's avatar
    Kayıt Tarihi: 24/Mayıs/2012
    Erkek

    bu sorunu çözdüm 2. sorum 2. sayfada..

    EdepsizPenguen tarafından 10/Eyl/13 06:01 tarihinde düzenlenmiştir

    Yüksek Fizik Mühendisi - Optik Sistem Mühendisi
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YekteranBaymedir
    YekteranBaymedir's avatar
    Kayıt Tarihi: 10/Temmuz/2009
    Homo

    hacı sen bakana kadar matlab kurdum çalışan kodu hazırladım :)

     

    örneğin datamız:

    data={'X00100000Y07115613R09631'; 'X00100000Y07144019R09734'}       (alt alta uzayan bir satır vektörü)

    olsun.

    for i=1:size(data),

         temp=regexp(data{i}, '([0-9]+)', 'match');

         islenmis{i,1}=str2num(temp{1});

         islenmis{i,2}=str2num(temp{2});

         islenmis{i,3}=str2num(temp{3});

    end

    clear temp i

     

    böylece elinde istediğin şekilde işlenmiş bir "islenmis" matrisi bulunacak

     

    YekteranBaymedir tarafından 08/Eyl/13 21:12 tarihinde düzenlenmiştir
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    EdepsizPenguen
    EdepsizPenguen's avatar
    Kayıt Tarihi: 24/Mayıs/2012
    Erkek

    hocam ben denedim ama bende calismadi 2. satirda hata verdi ne dersin benmi yanlis fln yazmadin dimi hocam

     

    edit:tmm hocam hallettim eline koluna aklina saglik cok tesekkur ettim :D

    EdepsizPenguen tarafından 08/Eyl/13 22:56 tarihinde düzenlenmiştir

    Yüksek Fizik Mühendisi - Optik Sistem Mühendisi
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Excel
    radres
    radres's avatar
    Kayıt Tarihi: 28/Şubat/2009
    Erkek

    ---------------------------------------------------------

    clc
    clear all

    string='X00100000Y07115613R09631'

            XcN =  str2num(string(2:9))
            YcN =  str2num(string(11:18))
            RvN =  str2num(string(20:24))
           
            [XcN YcN RvN]

    ---------------------------------------------------------

    ilk satırdakini bu şekilde yaptım ... for  döngüsüydü felan bişeler ayarla işte :P

    diğerlerindede 'X'  'Y'  ve  'R'  bulundukları noktalar aynıysa aynen kullanabilirsin ...

    demek istediğim X ilk karakter  Y 10    R de 19. karakter ... sıralama değişiyorsa 2:9   11:18  20:24   yazdığım yerlerdede değişiklik olması gerekir ... gördüğüm kadarıyla sıralama hepsinde aynı ... kolay gelsin :)

     

    ekran çıktısını da ekliim :

    ---------------------------------------------------------

    string =
    X00100000Y07115613R09631


    XcN =
          100000


    YcN =
         7115613


    RvN =
            9631


    ans =
          100000     7115613        9631

    -------------------------------------------------------------------

     

    Edit:

    bidakka yanlış mı anladım ... :D ... bu değerlerin hepsini bi değişkenin içine atıp for döngüsüyle nasıl hallederim demişsin sanırım... tmm şimdi ona bakim :D ...

    radres tarafından 08/Eyl/13 23:48 tarihinde düzenlenmiştir

    valar morghulis ...
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    EdepsizPenguen
    EdepsizPenguen's avatar
    Kayıt Tarihi: 24/Mayıs/2012
    Erkek

    müridler yardımınız için tesekürler o sorunu hallettim ama şimdide başka bi sorun var, şimdi bu datalar normalde bi .DSC uzantılı dosyada olduğu için ben bu dosyayı GUI de alıp işlemek istemiştim ama şuan uğraştığım kadarıyla henüz yapamadım, sizden isteğim GUI de ben bu dosyayı nasıl çekebilirim ve nasıl workspace e kayıtederim, normalde benim kullandığım "uigetfile" func. vardı ama onda almaya calıştığı datayı kayıt edemiyor, özet: bi tane "pushbutton" yapıp ona tıkladıgımda bu data'yı dışardan alıp workspace e kaydetmesini istiyorum, yardımcı olabilirseniz memnun kalırım. yapabilen olursa mesaj atarsa sevinirim telefondan fln giricem gündüz vakti..


    Yüksek Fizik Mühendisi - Optik Sistem Mühendisi
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    EdepsizPenguen
    EdepsizPenguen's avatar
    Kayıt Tarihi: 24/Mayıs/2012
    Erkek
    Daft bunu yazdı

    hacı sen bakana kadar matlab kurdum çalışan kodu hazırladım :)

     

    örneğin datamız:

    data={'X00100000Y07115613R09631'; 'X00100000Y07144019R09734'}       (alt alta uzayan bir satır vektörü)

    olsun.

    for i=1:size(data),

         temp=regexp(data{i}, '([0-9]+)', 'match');

         islenmis{i,1}=str2num(temp{1});

         islenmis{i,2}=str2num(temp{2});

         islenmis{i,3}=str2num(temp{3});

    end

    clear temp i

     

    böylece elinde istediğin şekilde işlenmiş bir "islenmis" matrisi bulunacak

     

    hoca senin scripti kullandım... şimdi ben normalde bu olayı guide yapıyom o yüzden guide bi pushbutton koydum ve onu "run myfunction" diye tanımlayıp çağırmaya çalışıştım ama bsefer daha önce aldığım datayı görmüyor ben en koalayından sana yaptığım fig. dosyasını fln atıcam sen bana fikir vericen hoca eğer vaktin varsa bu işin en geç cumaya yetşmesi lazım daha fazla geç kalırsam iş üstüme kalıcak.. benim çalışma buradan indireblin: http://www.dosya.tc/server16/xmOOJW/converter.zip.html    --- cevap bekliyom hoca ona göre


    Yüksek Fizik Mühendisi - Optik Sistem Mühendisi
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YekteranBaymedir
    YekteranBaymedir's avatar
    Kayıt Tarihi: 10/Temmuz/2009
    Homo

     

     

     

    " Your code is inside a GUI callback function so rawdata1 is in the function workspace, not the MATLAB base workspace.

    To understand the difference, see http://www.mathworks.com/help/techdoc/matlab_prog/f7-38085.html.

    To load into the base workspace, you need to use evalin() or assignin() "

     

    Kaynak: http://www.mathworks.com/matlabcentral/answers/20050

     

    fonksiyonlar ile komut satırından çalıştırdığın kodların workspace'i farklı imiş.

    sorunun kaynağı şu senin script'te:

    - data (h) standart workspace'e yerleşiyor.

    - ama myfunction GUI'nin workspace'inden okumaya çalışıyor.

    hiç denedin mi bilmiyorum ama komut satırından elle myfunction yazınca çalışıyor.

    ayrıca düzgünce bi fonksiyon oluşturaydın ya 

    çok karıştırmışsın kodları biri fonksiyon biri script falan.

    neyse kısaca yukardaki arkadaş evalin() veya assignin() fonksiyonlarıyla işlem yap demiş, ben beceremedim,

    GUI ile de hiç işim olmadı zaten.

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YekteranBaymedir
    YekteranBaymedir's avatar
    Kayıt Tarihi: 10/Temmuz/2009
    Homo

    http://www.heypasteit.com/clip/0YKP 

    belgenin sonlarına bak yaptığım değişikliği gör.

    dosya olarak indir: http://s3.dosya.tc/server10/4u10Do/converter.zip.html 

    YekteranBaymedir tarafından 11/Eyl/13 12:42 tarihinde düzenlenmiştir
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    EdepsizPenguen
    EdepsizPenguen's avatar
    Kayıt Tarihi: 24/Mayıs/2012
    Erkek

    hoca bende index exceeds matrix dimension  hatasi verdi ayrica functionun y{i,1}=str2double.. diye giden ilk satirinda hata var dedi sen benzer bi hata aldinmi bu arada eline saglik önemli bi kismini haletmis kdr olduk cevap bekliyorum.. 


    Yüksek Fizik Mühendisi - Optik Sistem Mühendisi
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YekteranBaymedir
    YekteranBaymedir's avatar
    Kayıt Tarihi: 10/Temmuz/2009
    Homo
    EdepsizPenguen bunu yazdı

    hoca bende index exceeds matrix dimension  hatasi verdi ayrica functionun y{i,1}=str2double.. diye giden ilk satirinda hata var dedi sen benzer bi hata aldinmi bu arada eline saglik önemli bi kismini haletmis kdr olduk cevap bekliyorum.. 

    bende herhangi bir problem yok

Toplam Hit: 1981 Toplam Mesaj: 11