Matlab + Armadillo 和逆矩阵崩溃
Posted
技术标签:
【中文标题】Matlab + Armadillo 和逆矩阵崩溃【英文标题】:Matlab + Armadillo and the inverse matrix crashes 【发布时间】:2016-09-16 03:55:59 【问题描述】:我正在尝试使用 Armadillo lib 从 Matlab 计算逆矩阵。为此,我正在使用 Mex。不幸的是,当我调用该函数时,Matlab 崩溃了。看看我的代码,有人可以帮忙看看我哪里错了?
#include "armaMex.hpp"
void mexFunction(int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[])
mat A = armaGetPr(prhs[0]);
plhs[0] = armaCreateMxMatrix(A.n_rows,A.n_cols);
armaSetPr(plhs[0],inv(A));
它编译没有错误。
【问题讨论】:
您可以编辑以显示 Matlab 崩溃时看到的错误消息吗?无法判断问题是数字还是代码。 【参考方案1】:试试这个:
#include "armaMex.hpp"
void mexFunction(int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[])
mat A = conv_to<mat>::from(armaGetPr(prhs[0],true));
plhs[0] = armaCreateMxMatrix(A.n_rows,A.n_cols, mxDOUBLE_CLASS, mxREAL);
armaSetPr(plhs[0],conv_to<mat>::from(inv(A)));
【讨论】:
以上是关于Matlab + Armadillo 和逆矩阵崩溃的主要内容,如果未能解决你的问题,请参考以下文章