summaryrefslogtreecommitdiff
path: root/37/CH1/EX1.2.1/Us4.sci
blob: 678009f7c6565ce3c975be8b6451ffeca9f6c6ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//Exercise Example 1.2.1
//Calculates Median And Mode Of an  Array
//(A)
function[y]=median1(a)
  p=mtlb_sort(a);
  [j,i]=size(a);
  y=0
  j=modulo(i,2);
  if(j==0)
    y=((a(i/2)+a(i/2+1))/2);
  end
  if(j==1)
    i=i/2;
    i=i-modulo(i,10);
    y=a(i+1);
  end
  disp(y,"median is");
endfunction
//(B)
function[z]=mode1(a)
  p=mtlb_sort(a);
  disp(p)
  q=1;
  r=1;
  i=1;
  [j,i1]=size(a);
  if(i1>1)
    for i=1:i1-1
      if(p(i)~=p(i+1))
      q=[q(:,:) i+1];
      r=[r(:,:) 1];
      else
        [c,d]=size(r);
        r(d)=r(d)+1;
      end
    end
    q1=mtlb_sort(r);
    [j,i1]=size(q1)
    if(q1(i1-1)==q1(i1))
      z=-1;
      disp("Mode does not exist");
      break;
      else
        c=q1(i1);
        k=1;
        while(r(k)~=c)
          k=k+1;
        end
        z=p(q(k));
      end
    end    
    if(i1==1)
      z=a(1);
    end
    disp(z,"mode is");
endfunction
a=[223 12 233322 121]
y=median1(a);
z=mode1(a);