Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
5.3.0 - Français

Change language to:
English - 日本語 - Português

Please note that the recommended version of Scilab is 2023.1.0. This page might be outdated.
See the recommended documentation of this function

Manuel Scilab >> API Scilab > Low level functions > Boolean reading (Scilab gateway)

Boolean reading (Scilab gateway)

How to read matrix of boolean.

Calling Sequence

Input argument profile:

SciErr getMatrixOfBoolean(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, int** _piBool)

Named variable profile:

SciErr readNamedMatrixOfBoolean(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, int* _piBool)



Scilab environment pointer, pass in "pvApiCtx" provided by api_scilab.h.


Address of the Scilab variable.


Name of the variable for "named" functions.


Return number of rows of the variable.


Return number of columns of the variable.


Return address of data array (size: _iRows * _iCols). For "Named" function, _piBool must be allocated before calling function.


Error structure where is stored errors messages history and first error number.


This help describes how to read matrix of boolean.

Gateway Source

int read_write_boolean(char *fname,unsigned long fname_len)
    SciErr sciErr;
    int i;
    //first variable info : real matrix of double
    int iRows                    = 0;
    int iCols                    = 0;
    int *piAddr                = NULL;
    int* piBool                = NULL;

    //check input and output arguments

    //get variable address of the first input argument
    sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
        printError(&sciErr, 0);
        return 0;

    //get size and data from Scilab memory
    sciErr = getMatrixOfBoolean(pvApiCtx, piAddr, &iRows, &iCols, &piBool);
        printError(&sciErr, 0);
        return 0;

    //Do something with data
    for(i = 0 ; i < iRows * iCols ; i++)
        piBool[i] = piBool[i] == 0 ? 1 : 0;

    sciErr = createMatrixOfBoolean(pvApiCtx, Rhs + 1, iRows, iCols, piBool);
        printError(&sciErr, 0);
        return 0;

    LhsVar(1) = Rhs + 1;
    return 0;

Scilab test script

a = [%t, %f, %t ; %f, %t, %f ; %t, %f, %t];
a_ref = [%f, %t, %f ; %t, %f, %t ; %f, %t, %f];
b = read_write_boolean(a);

if or(b <> a_ref) then error("failed"), end
<< Low level functions Low level functions Boolean writing (Scilab gateway) >>

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:24:18 CET 2011