Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

MATLAB soruları


dasaaa

Öne çıkan mesajlar

Bi grafik çizdiriyorum, bir değerin y'deki max ve min değerleri için eğriyi 2 noktadan yatay şekilde çizdirip işaretletiyorum

şöle bişi

figure; plot( t,Ia, t,x1, t,x2, t(imin),Ia(imin),'o', t(imax),Ia(imax),'o','LineWidth',2,...
'MarkerEdgeColor','m',...
'MarkerSize',8);
title('Husid plot ','Fontweight','bold');grid on;axis tight
xlabel('Time [s]'); ylabel('Acceleration (m/sec^2)');


şimdi merak ettiğim grafiğin alt tarafına [içine değil] bu Ia(imin) ve Ia(imax) değerlerini yazdırabilir miyim? nasıl?

soruların devamı gelebilir..
Link to comment
Sosyal ağlarda paylaş

şimdi elimde bööle bi sürü değer var tablolardan okunuyor sadece.

sütun'da soft soil, soil, stiff, rock vs. vs.
satırda ise belli km araları (mesela, 1-10km, 10-15km gibi)
bunların birleştiği yerlerde de değerler var (sıkıyorum şimdi rock/1-10km için 0.150, rock/10-15km için 0.082 gibi)

>>>şu imkan var mıdır? MATLAB'a ne input olarak sadece soft soil ve kilometre bilgilerini girip bu tablo kısmında çıkan değerleri otomatik olarak aldırabilir miyim?
>>>Eğer böyle bir yöntem var ise nasıl yapılır?
>>>Bu dataların alınacağı tabloları nasıl oluşturmam daha doğru olur? (Mesela excel'den mi alsın yoksa bi liste veya matrix içerisine mi sokayım bir şekilde?)

bakındım biraz ama açıkçası doyurucu bi bilgi bulamadım. bakınmaya devam ediyoruz..
Link to comment
Sosyal ağlarda paylaş

yanlış anlamadıysam veri dosyasında bu değerler belirli sütunlarda belirleniyor yani sen soft soil olduğu zaman 15. sütundaki rakamları okumak istiyorsun değil mi?

Aslında sütunlara falan çok dikkat etmene gerek yok misal

2..5..4..3..1
3..4..1..2..3
.
.
.
diye giden bir datayı bir arraye okuturken zaten sırayla okuyor dolayısıyla sen bu örneğe göre 5XN lik bir array yaparsın ve bunları okuyacağın zaman array[0][0], array[0][1]...array[0][4]'e kadar okutur daha sonra ikinci satır için array[1][1] diye vs devam edebilirsin. Kod olarak yazmak gerekirse, dosyayı açtıktan sonra

for (r=0;r for (c=0;c[c]));
}

r satırlar, c'de sütunlar için. Yanlız bu dosyalarda sadece veriler olmalı eğer ilk satırlarda falan yazı varsa onları atlayıp rakamların olduğu yere geleceksin (onu da yapmanın yolu vardır elbet). Yukarda verdiğim örnek için:

2..5..4..3..1
3..4..1..2..3

eğer r'ın maksimum değerini 1 (yani 0,1 eder iki satır) c'nin maksimum değerini de 4 alırsan sırayla şöyle okıyacak:
M[0][0]=2, M[0][1]=5, M[0][2]=4....
M[1][0]=4, M[1][1]=4, M[1][2]=1...

Dediğim gibi scanf bütün rakamları sırayla okur dosyadaki.
Şimdi bütun satırları ve sütunları okutmuş olacaksın M arrayine. Daha sonra eğer soft soil denen veriler 5. sütuna denk geliyorsa M[r][4] lerin hepsini alacaksın

gibi bir durum mu söz konusu?
Link to comment
Sosyal ağlarda paylaş

dasaaa said:

>>>Bu dataların alınacağı tabloları nasıl oluşturmam daha doğru olur? (Mesela excel'den mi alsın yoksa bi liste veya matrix içerisine mi sokayım bir şekilde?)

bakındım biraz ama açıkçası doyurucu bi bilgi bulamadım. bakınmaya devam ediyoruz..


yukarda yazdığıma bakarsan sadece rakamlar olan bir tablo oluşturursan okuman kolay olur excele gerek yok. senin yarattığın bir .txt dosyasını okutacağın zaman scanf komutu ordaki rakamları sırayla tek tek okuyacaktır. Onu istediğin bir arraye yazdırıp arrayin sütunlarına göre istediğin verileri gruplayabilirsin.
Link to comment
Sosyal ağlarda paylaş

şöle mesela ilk adımda toprak cinsine göre 3tane tablodan bi tanesini seçiyor. bu soil olması lazım


sonra buradan km mesafesine göre bi değer alıyor. ona göre hesaplar yapılıyor ve b1 b2 b3 falan gibi değerler uygun tablo hangisi ise ondan alınıyor mesela bi tanesi şu;



diyelim ki stiff soil olsaydı ilk tablo farklı olacaktı

ve bu tablodan alınan değere göre diğer tablolar da farklı çıkacaklardı.

bu arada http://www.picamatic.com/ süper bi site! harika bi siteymiş ..

Link to comment
Sosyal ağlarda paylaş

o zaman her toprak cinsini için verileri farklı isimli bir dosyay yazdırırsın, daha sonra veriyi okuyacağın dosyanın ismini istediğin toprak türüne göre seçersin (buarada matlabı unuttuğum için C koduyla yazıyorum ama matlab c'ye çok benziyor zaten):

fd = fopen(name,"r");

tarzı bir komut çok yüksek ihtimalle vardır matlabda da fd file pointer ve o pointer'a istediğin isimdeki dosyayı açıyorsun.

Her tablonun formatı aynı dolayısıyla tablon misal 10x20lik bir tabloysa (eğer tabloya göre değişiyorsa boyutlar bu tabloyu yazdıracağın dosyanın ilk satırına tablonun boyutlarını yazdır ve boyutları ordan oku ilk iki rakan olarak), daha sonra tabloyu yukarda dediğim gibi 10x20lik bir arraye okut ve ona göre kullan derim ben.
Link to comment
Sosyal ağlarda paylaş

çok sağol ardeth =) du biraz kasayım. yarına da mat sınavı var. daha ona hiç bakmadım. sınavdan sonra daha da zorlar yazarım zati halledince ^_^


razzRaziel said:
bu arada bende matlab kitabı(pdf, türkçe, ingilizce) kaynakları fln var lazımsa pm

çok teşekkürler ama kitaplık çok vakit yok. biraz düşe kalka öğreniyorum lol sadece çok aşırı sıkıştıkça kitaplara, forumlara bakınıyorum. zaten matlabı amaç deel de araç olarak kullandığımız için şimdilik bayağı bi pseudocode (böle mi oluyor. beyinde programlama ile ilgilenmesi gereken kısım bende yok, hiç var olmadı) yazıp sonrasında "haaa. matlab.. eveeet" falan diye diye monitör'ü tartaklıyorum. öle böle oluyo mu oluyo =)
Link to comment
Sosyal ağlarda paylaş

  • 1 ay sonra ...
elimde bi sürü data var. bunların birimleri falan farklı olabiliyor.

kabaca benim çalıştığım birimlerde çıkan sonuçlar;
0.00003169
gibi yani "3.1690e-005"
ama kimisi;
-0.003169
gibi yani bunu 1000'e bölmek lazım gerekiyor. Tabi bu çok salakça bi yaklaşım evet..

tempdata2=tempdata';
test=tempdata(1:1); test=abs(test);
if test>1*10^-3
tempdata=tempdata2/1000;
else tempdata=tempdata2;
end

gibi. kimisinde alınan örnekler çok daha farklı oluyor ve 0,0003169 gibi değerler çıkabiliyor. ya da 3,169

şimdi sorum şu; decimal digit count tarzı bişi var mıdır? Vardır garanti LÖNK diye işi yapan bi komutu da nedir bilen var mıdır?

10e-kaç olduğu söylesin diğer değişimleri doğru düzgün yaptırtırım. bi sürü kayıt var açıp bakmak sonra düzenlemek ya da
if buysa luna böl, yok şuysa buna böl demek çok akıllıca olmayacak sanki.

ne dersiniz?
evet o salak yaklaşımla bişiler yaptırdım.. her datayı ardı ardına alıp, işletip grafiklerini kaydettiriyordum.. çıkan sonuçları gördüm kimisinde. %10falan da kaçsa üzgünüm -_- saçmaymış evet..
Link to comment
Sosyal ağlarda paylaş

dlmwrite komutu ile kolayca bi dosyaya matrix yazabiliyorsunuz

dlmwrite(dosya_adi, matrix, delimiter) seklinde, delimiter dedigi karakterleri hangi yazi ile ayirma, mesela ',' dersen 10,20,30 yazar ' 'dersen 10 20 30

her satirda da bi alt satira geciyo, cok kullanisli

dlmread(filename) de ayni sekilde bi dosyadaki matrix i okur, hatta , bosluk falan otomatik tanir

csv gibi dosyalari otomatik okuyo matlab bu arada, var function i onunda :)
Link to comment
Sosyal ağlarda paylaş

  • 3 ay sonra ...
bir de şunu ekleyin yukarıdakine..

uzun oldu kodlar. biraz boğdu beni aynı kısımda..
1. program çalıştıktan sonra dataları alıp
2. program dataları hesaplasın ve 3.sü sadece grafiklerle ilgilensin istiyorum..

1.programın adı datasheet.m
2.sinin adı HisSD2.m

1.sinin altında
HisSD2.m
yazdığımda

Attempt to reference field of non-structure array.


diyor ama HisSD2.m çalışıyor(?) ve ancak HisSD2.m'in sonunda yazan diğer dosya çalışmıyor..
Link to comment
Sosyal ağlarda paylaş

randn ile sadece 0-1 arası normally distributed random value oluşturmanın bi yolu var mı.. ya da normally dist. başka bir şey de olabilir mean=0 ve standard deviation=0 olacak tabi..

ama her değeri 0-1 arasında olması lazım

bi loop yazdım ama mesela 100sayı generate ediceksem bayağı uzun sürüyor bunu yapması :(
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...