Info

This question is closed. Reopen it to edit or answer.

A function works in MATLAB but shows an error in C#

2 views (last 30 days)
Mehdi
Mehdi on 10 Aug 2015
Closed: MATLAB Answer Bot on 20 Aug 2021
Hello all,
I have a function which is working very well in MATALAB. But interestingly when I run it in C# I get this error:
Index exceeds matrix dimensions.
C# code:
using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
using A;
double[] Bx = new double[N];
double[,] PP = new double[N,N];
double[,] W = new double[N,N];
// Some calculation for Bx , PP & W
MWNumericArray arr1 = PP;
MWNumericArray arr2 = Bx;
MWNumericArray arr3 = W;
ACLASS OBJ = new ACLASS();
MWArray RESULT = (MWNumericArray)OBJ.A((MWNumericArray)arr1, (MWNumericArray)arr2, (MWNumericArray)arr3,3, 2,1,1);
// Copy back the RESULT in PP
PP = (double[,])((MWNumericArray)RESULT).ToArray(MWArrayComponent.Real);
  • What does happen in C# which disturbs matrix dimension ?
  • Could it be because of difference arrays in C# start from 0 and in MATLAB start from 1 ?
Any help ?
Thanks

Answers (1)

Varun Bhaskar
Varun Bhaskar on 12 Aug 2015
Hello,
Please follow the simple example of the 'magic square' code integration in the following link :
Since you have already declared arr1, arr2, and arr3 you do not need to typecast again in the next line of code. Also, as you said C# array indices start from 0, so MWNumeric Array indices start from 0 to n-1, n being the size of the array.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!