Matlab Fscanf Komut Yardım?
-
İ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;
X00100000Y07115613R09631X00100000Y07144019R09734X00100000Y07172425R10150X00100000Y07200831R10746X00100000Y07229237R11369X00100000Y07257643R11903X00100000Y07286049R12295X00100000Y07314455R12546X00100000Y07342861R12684X00100000Y07371267R12745......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 -
bu sorunu çözdüm 2. sorum 2. sayfada..
EdepsizPenguen tarafından 10/Eyl/13 06:01 tarihinde düzenlenmiştir -
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
-
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 -
---------------------------------------------------------
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 -
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..
-
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
-
" 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.
-
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 -
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..
-
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