File: mexfunction7.c

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 (37 lines) | stat: -rw-r--r-- 1,026 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
30
31
32
33
34
35
36
37
#include "mex.h"

void mexfunction7(int nlhs,mxArray *plhs[],int nrhs, mxArray *prhs[])
{
  double  *pr;
  int     *ir, *jc;
  int      col, total=0, number_of_columns;
  int      starting_row_index, stopping_row_index, current_row_index;

  /* Get the starting positions of the data in the sparse array. */  
  if (! mxIsSparse(prhs[0]) ) mexErrMsgTxt("requires sparse input!");
  pr = mxGetPr(prhs[0]);
  ir = mxGetIr(prhs[0]);
  jc = mxGetJc(prhs[0]);

  /* Display the nonzero elements of the sparse array. */ 
  number_of_columns = mxGetN(prhs[0]);
  for (col=0; col<number_of_columns; col++)  
    { 
      starting_row_index = jc[col]; 
      stopping_row_index = jc[col+1]; 
      if (starting_row_index == stopping_row_index)
	continue;
      else 
	{
	  for (current_row_index = starting_row_index; 
	       current_row_index < stopping_row_index; 
	       current_row_index++) 
	    {       
	      mexPrintf("(%d , %d) = %g \r\n", ir[current_row_index]+1, 
			col+1, pr[total]);
	      total++;
	    }
	}
    }
}