|

楼主 |
发表于 2007-11-18 19:48:14
|
显示全部楼层
提供参考,看谁能最先解决这个问题
混合编程参数传递,有办法把vector转为mwarray吗?
我想从VC中传一个可变长度的数字序列给Matlab,看了帮助文档,只介绍了把数组变为mwarray来传递,可是数组是无法在执行时变长度的,就想用vector,可是好像没有转为mwarray的函数阿,怎么可以解决这个问题呢?
2006-12-27 18:34 SCIE
既然你已经知道了如何用一个普通的数组来构建mwArray变量,那么问题就在于如何从vector中获取vector中指向数据的数据指针。
::std::vector<double> a(6, 1);
double *pa = &(a[0]);
&(a[0]) 可以获得指向vector变量a中数据的指针,然后传递给mwArray的构造函数即可。
[code]
::std::vector<double> a(6, 1);
double *pa = &(a[0]);
mwArray C(2, 3, pa);
void CMxArrayDlg::OnButton1()
{
// TODO: Add your control notification handler code here
mwArray A;
A=magic(3);
double *p;
p=mxGetPr(A.GetData());
CString str;
str.Format("%2.0f,%2.0f,%2.0f,%2.0f,%2.0f,%2.0f,%2.0f,%2.0f,%2.0f",
p[0],p[1],p[2],p[3],p[4],p[5],p[6],p[7],p[8]);
SetDlgItemText(IDC_EDIT1,str);
}
[ 本帖最后由 wdyjz 于 2007-11-18 19:59 编辑 ] |
|