How to access a Matlab field inside a struct from C#

c#, matlab

Solution

Solved by using:

MWNumericArray fieldA = (MWNumericArray) data["a", 1]; //data(1,1).a
MWNumericArray fieldB = (MWNumericArray) data["b", 1]; //data(1,1).b
fieldA = (MWNumericArray) data["a", 2]; //data(1,2).a
fieldB = (MWNumericArray) data["b", 2]; //data(1,2).b

Remember mathematicians count from 1, programmers from 0.

Problem

Assume the following in Matlab: ``` %variable info contains a <1x2 struct>, so... info(1,1); info(1,2); %these contains fields like .a .b etc. info(1,1).a = [1, 2, 3, 4, etc... ]; info(1,2).b = [1, 2, 3, 4, etc... ]; ``` Now in C#: Normally, I would do something like: ``` //assume I received the variable info from an output parameter //of a MatLab function, called via InterOp MWNumericArray fieldA = (MWNumericArray) info.GetField("a"); //Remember that info contains 1row with 2 columns ``` I want to access the fields from both columns ``` //this is what i've tried, and failed, with the exception for data["a",1] MWNumericArray fieldA = (MWNumericArray) data["a", 0]; MWNumericArray fieldA = (MWNumericArray) data["a", 1, 1]; MWNumericArray fieldA = (MWNumericArray) data[0]; ``` So how do I access a field from inside a nameless struct ? While step debugging, VisualStudio defines `info` as a ``` info = { 1x2 struct array with fields: a b } ```

Original source