[Bölüm 8] MATLAB’ta Mantıksal Fonksiyonlar ve Seçme Yapılar

Merhaba arkadaşlar, bu yazımda sizlere MATLAB üzerindeki mantıksal yapı ve seçmelerden bahsedeceğim.

  • < , > komutları doğruluk durumlarına göre 1 ve 0 çıktıları verdirirler.
  • < : daha küçük
  • <= : daha küçük ya da eşit
  • > : daha büyük
  • >= : daha büyük ya da eşit
  • == : eşit
  • ~= : eşit değil
  • & : ve
  • ~ : değil(olumsuzluk anlamı katar)
  • | : ya da
  • xor : özel
x = 5;
y = 4;

x < y 
ans = 
     0
 
x > y
ans =
     1 

x = [1, 2, 3, 4, 5];
y = [-2, 0, 2, 4, 6];

x < y
ans =
     0  0  0  0  1
  • find komutu istenilen koşulları tespit eder. İstenilenin kaçıncı sırada olduğunu söyler.
yukseklik = [63, 67, 65, 72, 69, 78, 75]
x = find(height>=66)
x =
    2 4 5 6 7

yukseklik(x)
ans =
    67 72 69 78 75 


applicants = [ 63, 18; 67, 19; 65, 18; 72, 20; 69, 36; 78, 34; 75, 12]
pass = find(applicants(:,1)>=66 & applicants(:,2)>=18 & applicants(:,2) < 35)
pass =
      2
      4
      6
  • if komutu ile komutlar gerçekleşme olasılıklarına göre yazılır. Koşul sağlanıyorsa disp komutundaki işlem yapılır, koşul sağlanmıyorsa hiçbir işlem yapılmaz.(if – end yapısı)
G = input('lütfen yaşınızı giriniz\n')
if G<50
    disp('yaşınız küçükmüş')
end


lütfen yaşınızı giriniz
19
G =
   19
yaşınız küçük


lütfen yaşınızı giriniz
77
G =
   77
  • else komutu kullanıldığı zaman koşul sağlanıyorsa girdideki (input) işlem yapılır, koşul sağlanmıyorsa else deki işlem yapılır.(if – else – end yapısı)
x = input('x için 0 dan büyük bir değer giriniz \n')
if x > 0
   y = log(x)
else
   disp('x için pozitif değerler giriniz')
end


x için 0 dan büyük bir değer giriniz
10
x =
   10
y =
   1


x için 0 dan büyük bir değer giriniz
0
x için 0 dan büyük bir değer giriniz
  • if – elseif – elseif – … – end yapısında hangi koşul sağlanıyorsa o işlem yapılır.
age = input('lütfen yaşınızı giriniz \n')
if age<16
   disp('üzgünüm beklemek zorundasınız')
elseif age<18
   disp('öğrenci lisansına sahip olmalısınız')
elseif age<70
   disp('standart lisansa sahip olmalısınız')
else
   disp('70 ve yukarısı özel lisansa sahiptir')
end


lütfen yaşınızı giriniz
19
Standart lisansa sahip olmalısınız

ÖRNEK:

age = [15,17,25,55,75];
set1 = find(age<16); set2 = find(age>=16 & age<18); set3 = find(age>=18 & age<70); set4 = find(age>=70);

fprintf('Sorry – You''ll have to wait - you"re only %3.0f
\n',age(set1))
fprintf('You may have a youth license because you"re %3.0f
\n',age(set2))
fprintf('You may have a standard license because you"re
%3.0f \n',age(set3))
fprintf('Drivers over 70 require a special license. You"re
%3.0f \n',age(set4))

Sorry – You'll have to wait - you're only 15
You may have a youth license because you're 17
You may have a standard license because you're 25
You may have a standard license because you're 55
Drivers over 70 require a special license. You're 75
  • switch-case yapısı if-else yapısı ile mantıksal olarak aynı çalışır. if-else yapısına göre daha okunabilir özelliktedirler.
city = input('Enter the name of a city in single quotes: ')
switch city
   case 'Boston'
      disp('$345')
   case 'Denver'
      disp('$150')
   case 'Honolulu'
      disp('Stay home and study')
   otherwise
      disp('Not on file')
   end

city =
'Boston'
$345
  • menu komutu yazılan seçeneklere bağlı menü penceresi açar.
city = input('Enter the name of a city in single quotes: ')
switch city
   case 'Boston'
      disp('$345')
   case 'Denver'
      disp('$150')
   case 'Honolulu'
      disp('Stay home and study')
   otherwise
      disp('Not on file')
   end


city = menu('Select a city from the menu:','Boston','Denver','Honolulu')
switch city
   case 1
      disp('$345')
   case 2
      disp('$150')
   case 3
      disp('Stay home and study')
   end

Yukarıdaki komutlar uygulandığı zaman bizden bir şehir seçmemiz istenir ve sonrasında menü açılır. Menüdeki butonlar yazılan komutlara göre çalışır.