Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: Français - Português - 日本語

Please note that the recommended version of Scilab is 6.1.1. This page might be outdated.
However, this page did not exist in the previous stable version.

Scilab manual >> call_scilab API > creadmat (obsolete)

creadmat (obsolete)

Read a single double or a matrix of double from Scilab memory using call_scilab. Note that it is the default datatype in Scilab. Starting with Scilab 5.2, this function is obsolete. See API_Scilab: Double reading for remplacement.

int C2F(creadmat)(char *name, int *m, int *n, double *scimat, unsigned long name_len);



The name of the future Scilab variable


Number of rows


Number of columns


The actual matrix of double (array of double). Note that it is going to be stored in Scilab columnwise.


The length of the variable name(fortran compatibility)


C2F is just a macro which provides to this function the ability to be called from fortran


This help describes how to use the function creadmat.

Using this function will retrieve a variable called name from Scilab memory into a standard C double *.


/* Load the previously set variable B */
// See: modules/call_scilab/examples/basicExamples/readwritematrix.c
int rowB_ = 0, colB_ = 0, lp_ = 0;
double *matrixOfDoubleB = NULL;
int i = 0, j = 0;

char variableToBeRetrievedB[] = "B";

/* First, retrieve the size of the matrix */
C2F(cmatptr)(variableToBeRetrievedB, &rowB_, &colB_, &lp_, strlen(variableToBeRetrievedB));

/* Alloc the memory */
matrixOfDoubleB = (double*)malloc((rowB_*colB_)*sizeof(double));

/* Load the matrix */
C2F(creadmat)(variableToBeRetrievedB,&rowB_,&colB_,matrixOfDoubleB,strlen(variableToBeRetrievedB) );

printf("Display from B formated (size: %d, %d):\n",rowB_, colB_);
for(j = 0 ; j < rowB_ ; j++)
  for(i = 0 ; i < colB_ ; i++)
    /* Display the formated matrix ... the way the user
     * expect */
    printf("%5.2f ",matrixOfDoubleB[i * rowB_ + j]);
  printf("\n"); /* New row of the matrix */


Sylvestre Ledru

Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Wed Jan 26 16:23:48 CET 2011