C# 如何从C访问结构中的Matlab字段#
在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
%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);
可以肯定的是,你对你找到的答案满意吗?