//============================================================================= /// <summary> /// Read a named matrix of string from scilab /// </summary> /// <param name="matrixName"> variable name</param> /// <returns>a matrix of string from scilab. If Variable name does not exist returns null</returns> public unsafe string[] readNamedMatrixOfString(string matrixName) { string[] matrixString = null; int[] iDim = getNamedVarDimension(matrixName); if (iDim != null) { int iRows = iDim[0]; int iCols = iDim[1]; // we allocate lengthmatrixString int[] lengthmatrixString = new int[iRows * iCols]; System.IntPtr ptrEmpty = new System.IntPtr(); // we get length of strings //cEngineDlls.api_Err SciErr = m_objScilabInvoker.readStrMat(ptrEmpty, matrixName, &iRows, &iCols, lengthmatrixString, null); Scilab_cs_wrapper.api_Err SciErr = Scilab_cs_wrapper.readNamedMatrixOfString(ptrEmpty, matrixName, &iRows, &iCols, lengthmatrixString, null); // we allocate each string matrixString = new string[iRows * iCols]; for (int i = 0; i < iRows * iCols; i++) { matrixString[i] = new string(' ', lengthmatrixString[i]); } // we get strings from scilab //SciErr = m_objScilabInvoker.readStrMat(ptrEmpty, matrixName, &iRows, &iCols, lengthmatrixString, matrixString); SciErr = Scilab_cs_wrapper.readNamedMatrixOfString(ptrEmpty, matrixName, &iRows, &iCols, lengthmatrixString, matrixString); } return(matrixString); }