File: sci_median.sci

package info (click to toggle)
scilab 2.6-4
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 54,632 kB
  • ctags: 40,267
  • sloc: ansic: 267,851; fortran: 166,549; sh: 10,005; makefile: 4,119; tcl: 1,070; cpp: 233; csh: 143; asm: 135; perl: 130; java: 39
file content (29 lines) | stat: -rw-r--r-- 821 bytes parent folder | download
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
function [stk,txt,top]=sci_median()
// Copyright INRIA
txt=[]
if rhs==1 then
  [m,n]=checkdims(stk(top))
  x=stk(top)(1)
  if m==-1&n==-1 then
    set_infos([
	 'mtlb_median('+x+') may be replaced by '
         '  median('+x+')'+' if '+x+'is a vector'
	 '  median('+x+',1)'+' if '+x+'is a matrix'],1)
    stk=list('mtlb_median('+x+')','0','?','?','1')
  elseif m==1|n==1 then
    stk=list('median('+x+')','0','1','1','1')
  else
    stk=list('median('+x+',1)','0','1',stk(top)(4),'1')
  end
else
  x=stk(top-1)(1)
  if stk(top)(1)=='1' then
    stk=list('median('+x+',1)','0','1',stk(top-1)(4),stk(top-1)(5))
  elseif stk(top)(1)=='2' then  
    stk=list('median('+x+',2)','0',stk(top-1)(3),'1',stk(top-1)(5))
  else  
    y=stk(top)(1)
    stk=list('median('+x+','+y+')','0','?','?',stk(top-1)(5))
  end
  top=top-1
end