从C ++构建MWArray结构

16次观看(过去30天)
SDS"class=
SDS 2012年7月26日
编辑: CO Melissant.2018年11月13日
我有困难找到工作的例子,如何我可以建立相同的Matlab数据结构在c++是建立在Matlab脚本:
功能数据= gendata()
sub.test1 = 1;
sub.test2 = 2;
数据。一个= 1;
data.two = 2.0;
data.string =.“字符串”
数据。分测验=子;
结束
我尝试使用类似的代码:
常量Char * data_fieldnames[] = {
“一”“两个”“字符串”“子”
};
常量char * sub_fieldnames [] = {
“test1”“test2”
};
mwArray数据(1,- 1,4,data_fieldnames)
mwArray一(1)
mwArray两个(2.0)
mwArray字符串(“字符串”)
mwArray子(1,1,2,Sub_Fieldnames)
mwArrayTest1(1)
mwArrayTest2(2)
sub.Get(1, 1)这里(test1);
sub.Get(1、2)这里(test2);
data.Get(1, 1)这里(一);
data.Get(1、2)这里(两个);
data.get(1,3).set(字符串);
data.Get(1、4)这里(子);
mwStringoutput_s = data.ToString ()
常量char * output_c =(const char *)输出_s
输出字符串给出了每个名称(one,two,string,sub)后面跟着“[]”。我期望正确的输出字符串将给我相同的disp(数据)将在MATLAB:
一:1
两个2
细绳:“字符串”
子(1 x1结构):
我做错了什么/我如何正确地构建这个结构?任何帮助都将不胜感激。

答案(2)

CO Melissant."class=
CO Melissant. 2014年4月17日
创建结构时,mwarray的第三个参数不是字段的数量,它的类型,所以使用语法,如:
mwArraysub(1,1, mxSTRUCT_CLASS, sub_fieldnames)
提高了可读性并解决了问题。
2的评论
CO Melissant."class=
CO Melissant. 2014年8月20日
事实上,它只是运气,访问任何字段,然后前两个导致崩溃。第三个论点确实应该是现场计数。现在让它为大结构工作......
mwArraysub(1, 1, fieldCount, fieldNames)
工作正常

登录评论。


kaustubha govind."class=
kaustubha govind. 2012年7月26日
这工作:
常量Char * data_fieldnames[] = {
“一”“两个”“字符串”“亚特最”
};
常量char * sub_fieldnames [] = {
“test1”, test2
};
mwArray数据(1,1,4,struct_fieldnames)
mwArray一(1)
mwArray两个(2.0)
mwArray字符串(“字符串”)
mwArray子(1,1,2,Sub_Fieldnames)
mwArrayTest1(1)
mwArrayTest2(2)
sub.get(“test1”, 1, 1)这里(test1);
sub.get(“test2”, 1, 2)这里(test2);
数据。Get (“一”, 1, 1)这里(一);
数据。Get (“两个”, 1, 2)这里(两个);
数据。Get (“字符串”, 1, 3)这里(字符串);
数据。Get (“亚特最”、1、4)这里(子);
mwString输出= data.ToString ()
常量char * output_c =(const char *)输出
(语法参考 这里
2的评论
kaustubha govind."class=
kaustubha govind. 2012年7月30日
你能帮我找找吗 在mwException 查看错误包含的消息。

登录评论。

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!