#include "mex.h" #include "matrix.h" #include "stdlib.h" void mexFunction(int nlhs, mxArray *plhs[], // Output variables int nrhs, const mxArray *prhs[]) // Input variables { if (nrhs != 2 || ! mxIsNumeric (prhs[0])) mexErrMsgTxt ("Check your input parameters"); int variables = *mxGetPr(prhs[0]); double* x = (double *)mxCalloc(variables+1, sizeof(double)); //create solution array double** GA = (double **)mxCalloc(variables+1, sizeof(double*)); //create Gauss Array (GA) for (int i = 0; i <= variables; i++){ GA[i] = (double *)mxCalloc(variables+1, sizeof(double)); } for(int i = 0; i < variables*(variables+1); i++){ //copy input array into GA GA[i%variables][i/variables] = mxGetPr(prhs[1])[i]; } // Gauß for (int i = 0; i= 0; i--) //back-substitution { //x is an array whose values correspond to the values of x,y,z.. x[i] = GA[i][variables]; //make the variable to be calculated equal to the rhs of the last equation for (int j = i + 1; j