C# 如何从C访问结构中的Matlab字段#

C# 如何从C访问结构中的Matlab字段#,c#,matlab,C#,Matlab,在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... ]; MWNumericArray fieldA = (MWNumericArray) data

在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... ];
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
我想访问两列中的字段

//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];
那么如何从无名结构内部访问字段呢?

步骤调试时,VisualStudio将
info
定义为

info = { 1x2 struct array with fields: a b }

通过使用解决:

%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... ];
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

记住数学家从1开始计数,程序员从0开始计数。

也许这有助于:

MWNumericArray fieldA = (MWNumericArray) info.GetField("a"); //defines info as a
MWNumericArray fieldB = (MWNumericArray) info.GetField("b"); //defines info as b

MWArray resultA = fieldA[0];
MWArray resultB = fieldB[0];
显示数据:

System.out.println(fieldA);
System.out.println(fieldB);

可以肯定的是,你对你找到的答案满意吗?