File: sci_horzcat.sci

package info (click to toggle)
scilab 4.0-12
  • links: PTS
  • area: non-free
  • in suites: etch, etch-m68k
  • size: 100,640 kB
  • ctags: 57,333
  • sloc: ansic: 377,889; fortran: 242,862; xml: 179,819; tcl: 42,062; sh: 10,593; ml: 9,441; makefile: 4,377; cpp: 1,354; java: 621; csh: 260; yacc: 247; perl: 130; lex: 126; asm: 72; lisp: 30
file content (65 lines) | stat: -rw-r--r-- 1,148 bytes parent folder | download | duplicates (2)
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
60
61
62
63
64
65
function [tree]=sci_horzcat(tree)
// Copyright INRIA
// M2SCI function
// Conversion function for Matlab horzcat()
// Input: tree = Matlab funcall tree
// Ouput: tree = Scilab equivalent for tree
// V.C.

allargs=tree.rhs
out=tree.lhs

op="rc"
for k=1:lstsize(allargs)
  if allargs(k).vtype==String then
    op="+"
    break
  end
end

tree=Operation(op,list(allargs(1),allargs(2)),list())

// Create output
for k=3:rhs
  tree=Operation(op,list(tree,allargs(k)),list())
end
tree.out=out

// Dimensions
outdims=allargs(1).dims
for k=1:lstsize(outdims)
  outdims(k)=Unknown
end
for k=1:rhs
  for l=1:lstsize(allargs(k).dims)
    if l<>2 & allargs(k).dims(l)<>Unknown then
      outdims(l)=allargs(k).dims(l)
    end
  end
end
nbcols=0
for k=1:rhs
  if allargs(k).dims(2)<>Unknown then
    nbcols=nbcols+allargs(k).dims(2)
  else
    nbcols=Unknown
    break
  end
end
outdims(2)=nbcols

// Property
prop=Real
for k=1:rhs
  if allargs(k).property==Complex then
    prop=Complex
    break
  elseif allargs(k).property==Unknown then
    prop=Unknown
    break
  end
end

tree.out(1).dims=outdims
tree.out(1).type=Type(allargs(1).vtype,prop)
endfunction