summaryrefslogtreecommitdiff
path: root/2.3-1/src/c/matrixOperations/cat/i16cata.c
blob: 9acd10ecf6f3289b1f228334ac5fd171d7b14fda (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
/* Scilab2C FOSSEE IIT BOMBAY*/
#include "cat.h"
/* From scilab help cat then the concatenation is done according to the rows
A1 = [1 2 3;4 5 6];
A2 = [7 8 9;10 11 12];
y = cat(1,A1,A2);
output => y = [1 2 3; 4 5 6;7 8 9;10 11 12]
*/

void i16rowcata(int16 *in1,int lines1,int columns1,int16 *in2,int lines2,int columns2,int16* out)
{
 int i = 0;
 int j = 0;
 for(i = 0;i < columns1 && i < columns2; ++i)
  {
    for(j = 0;j < lines1; ++j)
    {
       out[i*(lines1 + lines2) + j] = in1[i*lines1 + j];
    }
    for(j = 0;j < lines2; ++j)
      {
        out[i*(lines1 + lines2) + lines1 + j] = in2[i*lines2 + j];
      }

  }
}

  /* From scilab help cat then the concatenation is done according to the rows
A1 = [1 2 3;4 5 6];
A2 = [7 8 9;10 11 12];
y = cat(2,A1,A2);
output => y = [1 2 3 7 8 9; 4 5 6 10 11 12]
*/

void i16columncata(int16 *in1,int lines1,int columns1,int16 *in2,int lines2,int columns2,int16* out)
   {
     int i = 0;
     for(i = 0; i < lines1 * columns1;++i)
      {
          out[i] = in1[i];
 
      }
      for(i = 0;i < lines2 * columns2;++i)
      {
        
        out[i + lines1 * columns2] = in2[i];

      }
  
   }