Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

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

1 visualización (últimos 30 días)
Mehdi
Mehdi el 10 de Ag. de 2015
Cerrada: MATLAB Answer Bot el 20 de Ag. de 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

Respuestas (1)

Varun Bhaskar
Varun Bhaskar el 12 de Ag. de 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.

La pregunta está cerrada.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by