#BilimselMakale #matlab #Sismikİzolatör
İTÜ'deki yüksek lisans hocamla bir makale yayınladık. İsviçre merkezli, open-access makale yayımcısı MDPI'ın "Buildings" dergisinde.
Yüksek lisans tezimden yaptık (İTÜ "Deprem Mühendisliği" yüksek lisans programından mezun oldum 2019'un sonunda).

Makalenin konusu "Taban izolasyonlu yapılarda yapı zemin etkileşimi". Evet, depremlerden sonra herkesin ne olduğunu öğrendiği sismik izolatörlerle ilgili.

Özel bir sayıya davet edilerek yayınlandığı için 2000 CHF'den fazla olan ücreti de ödemedik, tamamen ücretsiz yayınlandı (Open-access dergilerde yayın yapmak ücretlidir normalde).

Tezimin ve dolayısıyla bu çalışmanın konsepti ve metodolojisi tamamen hocama ait.
Benim yaptığım şey bunu matlab'da özel bir program yazarak hayata geçirmek oldu. Hazır programlarla yapılabilecek bir şey olmadığı için mecburen her şeyi ben programladım.
Programım yüzlerce deprem kaydını alıp her zemin koşuluna göre time-history analizi yapıyor ve sonuçları düzenli şekilde grafik halinde kaydediyor. Çıktılardan bazılarını makalede görebilirsiniz. Tez yazdığım zamanlarda aylarımı almıştı. Aslında matlab yerine python veya rust gibi bir dil kullanmak isterdim ama vaktim azdı ve matlab'ı bildiğim için onu kullandım mecburen.

Ben de bu süreçte peer review sürecini görmüş oldum. Tam 4 hakem vardı ve hepsi bir eksik buldu, düzeltmek 1 hafta sürdü 😀 Sonuçta kabul edildi ve yayınlandı çok şükür.

Ben ikinci isim oldum, bunun nedeni de hocamın bu makale için benden daha fazla çalışmış olması. Bazı beklenmedik nedenlerden dolayı hocam uğraşmak zorunda kaldı benim yapmam gereken yerlerde.

Makale:
https://doi.org/10.3390/buildings13040915

BeğenFavori PaylaşYorum yap
Önceki yorumları gör 7 / 14

Merhaba
#matlab #yardım
matlabda şöyle bir struc yapım var. U22 u23 u24 u45 ....... şeklinde devam ediyor,her bir u sembolik ifadesine karşık gelen sym veri tipinde bir sayı var bu sayıları double tipine çevirip Unn= U(n-1)(n-1) e tanımlamak istiyorum.

örneğin U33 = 7/10 nu alıp U22=0.7 yapmak gerek
yardımcı olabilecek var mı ?

yourstructdata =

struct with fields:

u22: 315892449588328223792437931434219486934957262562444704966/3929515899029862079942920293017098504859…
u23: 3230692657670657805968356236518114671511246473152274107239/314361271922388966395433623441367880388…
u24: 5875458136930508992234411535368207506704034260640265162843/628722543844777932790867246882735760777…
u25:

BeğenFavori PaylaşYorum yap

Matlab kullanan var mı ya da bilgisi olan ? Birkaç ufak sorum var yardımcı olabilecek birisi var mı ?

1- Write the MATLAB representation format of the below equations
2- Write a MATLAB script (m-file) to calculate the area of the red region

Birinci soruda programın içinde yazılacak halini soruyor olarak anladım, eğer yanılmış isem soruda ne istediğini yazar mısınız ?

Cevap 1

RoG4=((a1+b*((3+e)/(2*f))*y^3)/(3*a2+ro))^(a^(2/3))

dcx3=1/(a*(2*pi+r))+y^3+(2*((b*y)/(a+y)-e)^(3*a))

Cevap 2 (a için 24, r için 4)

clear
clc

a=input("a icin deger girin : ");
r=input("r icin deger girin : ");

kare_alan=a^2;
ceyrek_daire_alan=(pi*r^2)/4;
kirmizi_alan=kare_alan-(4*ceyrek_daire_alan);

fprintf('Area of the square = %g cm2. \n' , kare_alan);
fprintf('Area of the red region = %.2f cm2. \n' , kirmizi_alan);

çıktısı

a icin deger girin : 24
r icin deger girin : 4
Area of the square = 576 cm2.
Area of the red region = 525.73 cm2.

Herhangi yanlışlık var mı ?

#Matlab #TeknoYardım

BeğenFavori PaylaşYorum yap

Matlab ile Image Processing uzerine bilgisi olan var mi? Resmi yeniden boyutlandiriyorum, iki farkli sekilde yapiyorum bunu; ilki imresize ile(sagdaki resim), ikincisinde ise kendi yazdigim fonksiyonda pixel pixel donup ikiser ikiser pixelleri atlayarek yeni bir resil olusturuyorum.

Sorun ise cikti bekledigim gibi olmuyor, neredeyse tamamen beyaz bir cikti aliyorum. Hataminda nerede oldugunu anlayamadim.

Ilk resimde acikladigi gibi yapmam gerekiyor. Ancak bir turlu yapamadim.

GUNCELLEME: Jpage'in yardimiyla hallettim, herkese tesekkur ederim.

#TeknoYardım #Matlab #code #proglamlama

BeğenFavori PaylaşYorum yap
  • Jpage @jpage

    imshow yaparken datayi tekrar unsigned integer 8 tipine cevirin: imshow(uint8(img)) seklinde.

    • Jpage @jpage

      Ayrica simdi koda baktim da Matlab for looplarini sevmez. Matlab indeksleme ile vektorel sekilde yazilabilir kod. Boylece daha hizli calisir.

    • Jpage @jpage

      Ornegin for looplari kullanmak yerine tek satirda su sekilde alabilirsiniz newImg = Img(1:2:end, 1:2:end, :). Burada her row ve clomun'un birinci elemanindan baslayarak +2 elemanlarini aliyorum yani, 1, 3, 5, 7 ... gibi

    • mrmetalhead @mrmetalhead

      @jpage tekrar uint8 yaptim ama degismedi. Index kullarak nasil yapabilir, kucuk bir ornek verebilir misin?

      Ihtiyac olursa tum kod asagidaki gibi, ancak bence sorun yazdigim custom fonksiyond.

      cd 'Resources';

      Img = imread('Img05.tif');
      figure, imshow(Img);
      whos Img;

      resizedImage1 = ReduceImageSize1(Img, 2);
      resizedImage2 = ReduceImageSize2(Img, 0.5);

      whos resizedImage1;
      whos resizedImage2;

      cd '../Outputs';

      imwrite(resizedImage1, 'Img08_Reduced_1.tif');
      imwrite(resizedImage2, 'Img08_Reduced_2.tif');

      % display result
      figure
      imshow(uint8(resizedImage1));

      figure
      imshowpair(resizedImage1, resizedImage2, 'montage');

      figure
      subplot(1,2,1)
      imshow(resizedImage1,[])
      title('Pixel extraction and replacement')
      subplot(1,2,2)
      imshow(resizedImage2,[])
      title('Imresize');

      CalcMSEandPSNR(resizedImage1, resizedImage2);

      function ReducedImage = ReduceImageSize1(Img, ReduceAmount)

      newImage = zeros(300,288,3); %initialize
      colSkipCounter = 1;
      rowSkipCounter = 1;

      rowCounter = 1;

      for r = 1:size(Img, 1) % for number of rows of the image

      if rowSkipCounter > (ReduceAmount + ReduceAmount)
      rowSkipCounter = 1;
      end

      colCounter = 1;

      if rowSkipCounter (ReduceAmount + ReduceAmount)
      colSkipCounter = 1;
      end

      if colSkipCounter <= ReduceAmount

      fprintf('[ Original Img - ROW: %.0f, COL: %.0f ] | [ New Img - ROW: %.0f COL: %.0f ] \n', r, c, rowCounter, colCounter);

      newImage(rowCounter, colCounter, 🙂 = Img(r, c, :);

      colCounter = colCounter +1;
      end

      colSkipCounter = colSkipCounter + 1;
      end

      rowCounter = rowCounter +1;
      end

      rowSkipCounter = rowSkipCounter + 1;
      end

      ReducedImage = im2uint8(newImage);
      end

      function ReducedImage = ReduceImageSize2(Img, ReduceAmount)
      ReducedImage = imresize(Img, ReduceAmount);
      end

      function CalcMSEandPSNR(Img1, Img2)

      errMSE = immse(Img1, Img2);
      fprintf('\n MSE is: %0.4f \n', errMSE);

      [peaksnr, snr] = psnr(Img1, Img2);
      fprintf('\n PSNR is: %0.4f \n', peaksnr);
      fprintf('\n SNR is: %0.4f \n', snr);
      end

    • mrmetalhead @mrmetalhead

      @jpage Img(1:2:end, 1:2:end, :); sorunsuz calisip kucultuyor boyutunu.

      Sanirim imresize ile ayni isi yapmis oldum, cunku bir sonraki assingment ta iki yontemi kiyaslamam isteniyor. Asagiya ciktiyi ekledim, dosya boyutlari da ayni oldu. Sanirim MSE ve PSNR degerleri de olmasi gerektigi gibi.

      Img: Orjinal resim
      ReducedImage1: Kendi yazdigim fonksiyonun ciktisi
      ReducedImage2: imresize

    • mrmetalhead @mrmetalhead

      MSE ve PSNR degerleri. (ReducedImage1 vs ReducedImage2)

    • Jpage @jpage

      @mrmetalhead aslinda imresize'la ayni isi yapiyor mu emin degilim. biz sadece pixel atlayarak matrix'den tekil sayidaki pikselleri cekmis olduk. Muhtemelen imresize bir filtering'de yapiyordur. Cunku downsampling yaptigimiz icin aliasing olusabilir. Bir low-pass filtering yapiyor olabilir anti-aliasing icin. PSNR ve MSE degerlerini karsilastirmak lazim.

    • qubit @qubit

      @mrmetalhead TS'de code diye bir etiket var.

    • mrmetalhead @mrmetalhead

      @jpage cok tesekkur ederim, imresize daha bulanik geldi bana sanirim yazdiginiz gibi bir firtleme yapiyor. Asil resim ile denedigimde cikan degerler;

Arkadaşlar merhaba,

Sizinle bir Matlab projesi paylaşmıştım.
https://youtu.be/yzFPYFQdwkQ

bu proje sizin ölçülerinize göre diyet programı öneriyor. Bunu iOS a yazmak istiyorum hocam ile konuşunca matlab ve azure kullanarak online bir şekilde compile etmesini sağlayabilirsin dedi. bilgi verip ufakta olsa yol gösterebilecek bir arkadaş var mı ?

İyi Akşamlar

#Matlab #iOS #Azure

BeğenFavori PaylaşYorum yap

arkadaşlar iyi akşamlar

bir haftadan beri önceden çalışan matlab 2015'i tekrar açmaya çalışıyorum.fakat her açışımda 1. fotodaki resim açılıyor, ram gpu disk kullanımı aşırı artıyor ve bi süre sonra sakinleşip açılmıyor.uyumluluk ayarlarındaki bütün ihtimalleri yapmama rağmen bi türlü açılmadı.defalarca silip tekrar yükledim sonuç yine aynı.acaba sorun versiyonda mı diye 2016 yı indirip denedim yine aynı sonuç maalesef. fakat 2016 da yükledikten sonra 2. açışımda 2. resimdeki hatayı verdi ve kapandı.aynı şekilde googıl amcadada matlabla alakalı benim yaşadığım sorunlarla ilgili hiçbirşey bulamadım.aklıma gelen şey acaba windows 10 sürekli güncellediğim için mi önceden açılan şey açılmamaya başladı.valla bulamassam son çare format gibi duruyor yardımlarınızı bekliyorum.

#akış #TeknoYardım #Matlab

BeğenFavori PaylaşYorum yap

Programcılara bir soru;

Diyelim ki elinizde bir script/kod var. Bu kodu başka insanlarla da paylaşmak, tüm dünyaya açmak istiyorsunuz. Ne yaparsınız? Herkesin bir şeyler paylaştığı ortak ve basit bir platform var mıdır bu kodu koyabileceğim?

Programcı değilim. Kıt bilgimle matlab'te bir şeyler yazdım ve paylaşmak istiyorum, çünkü yazana kadar canım çıktı bari başkaları rahat etsin:) Atıyorum, google'da adam anahtar kelimeyi yazsın, benim kodu bulsun, indirsin, kullansın, hiçbir ödeme, kayıt vs ile uğraşmasın. Ne önerirsiniz?

#akış #teknoyardım #programlama

BeğenFavori PaylaşYorum yap
Önceki yorumları gör 5 / 6