Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
5.3.0 - English

Change language to:
Français - 日本語 - Português

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

Scilab manual >> call_scilab API > creadcmat (obsolete)

creadcmat (obsolete)

Read a single complex or a matrix of complex from Scilab memory using call_scilab. Starting with Scilab 5.2, this function is obsolete. See API_Scilab: Complex double reading for remplacement.

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

Arguments

name

The name of the future Scilab variable

m

Number of rows

n

Number of columns

scimat

The actual matrix of complex (array of double). Note that it is going to be stored in Scilab columnwise and the second half of the array is used for complex values.

name_len

The length of the variable name(fortran compatibility)

C2F

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

Description

This help describes how to use the function creadcmat.

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

Examples

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

double *matrixOfComplexB = NULL;
char variableToBeRetrievedB[] = "B";

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

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

/* Load the matrix */
C2F(creadcmat)(variableToBeRetrievedB,&rowB_,&colB_,matrixOfComplexB,strlen(variableToBeRetrievedB) );

printf("\n");
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 + %5.2f.i  ",matrixOfComplexB[i * rowB_ + j],matrixOfComplexB[(rowB_*colB_)+(i * rowB_ + j)]);
   }
  printf("\n"); /* New row of the matrix */
 }

Authors

Sylvestre Ledru

<< creadchain (obsolete) call_scilab API creadmat (obsolete) >>

Copyright (c) 2022-2023 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
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