c - 矩阵乘法与 Mex 文件
问题描述
我在使用 Matlab 中的 mex 文件与 C 相乘时遇到问题。我正在编译下一个代码,但是当我调用该函数时,Matlab 崩溃:
#include "mex.h"
void Multipl(double **a, double **b, double **res, mwSize n)
{
mwSize i;
mwSize j;
mwSize k;
for (i=0; i<n; i++) {
for (j=0; j<n; j++){
res[i][j]=0;
for(k=0;k<n;k++){
res[i][j]+=a[i][k]*b[k][j];;
}
}
}
}
void mexFunction( int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[])
{
size_t ncols; /* size of matrix */
mxArray *mx, *my;
double *pr, *qr;
int *sr;
mx = mxCreateDoubleMatrix(2,3,mxREAL);
pr = mxGetPr(mx); // pointer to first double element of mx
qr = (double *)mxGetData(mx); // pointer to first double element of mx
my = mxCreateNumericMatrix(2,3,mxINT32_CLASS,mxREAL);
sr = (int *)mxGetData(my); // pointer to first int element of my
ncols = mxGetN(prhs[1]);
plhs[0] = mxCreateDoubleMatrix(1,(mwSize)ncols,mxREAL);
int* outMatrix = (int *)mxGetData(plhs[0]);
/* call the computational routine */
Multipl(mx,my,outMatrix,(mwSize)ncols);
}
我应该在这段代码中改变什么?
任何帮助表示赞赏。
解决方案
推荐阅读
- python - Discord bot 通过内置命令发送带有图像的文本消息(Python;可以用另一种语言重做)
- go - 协议不创建服务
- python - 如何拆分数据框中的文本并将每个单词放在数据框行中?
- python - 石头剪刀布 Discord.py
- javascript - 如何停止包含嵌套循环和 if else 语句的整个 javascript 代码?
- excel - Excel 中 VBA 的一个或多个必需参数错误没有给出值
- jquery - 如何在 vis.js 中突出显示节点及其标签?
- javascript - 如何使用 hyper 推送 heroku 应用程序?出错
- git - 更新安装了 whitout git 但使用 git 更新的 Moodle
- jmeter - 无法保存我的 jmeter 测试计划,显示以下错误