我对Matlab有一点经验,但对mex环境不熟悉。
我想要做的是将我计算的一些值保存到我的C例程中的txt文件中。
为了简单起见,我在这里使用MathWork的Create C Source File guide中的示例arrayProduct.c进行详细说明。
我通过以下方式修改了示例代码:
void arrayProduct(double x, double *y, double *z, mwSize n)
{
mwSize i;
/* multiply each element y by x */
FILE *f = NULL;
f = fopen("log_test.csv", "rb");
for (i=0; i<n; i++)
{
z[i] = x * y[i];
fprintf(f, "%g\n", z[i]);
}
fclose(f);
}
所以我添加了 f , fopen , fprintf 和 fclose 命令的声明。 我使用 MS Visual Studio C ++ 2013 Professional(C)作为编译器,代码编译得很好。 通过取消注释我的所有更改并再次一点一点地介绍它,我能够发现Matlab在 fopen 命令崩溃。
我无法在这里或其他地方找到有用的帮助,所以非常欢迎任何建议。非常感谢提前!
亲切的问候
菲利普
答案 0 :(得分:0)
感谢有用的评论,尤其是RobertStettler! 问题在于我打开文件的模式。它应该是r +,w +或a +。
答案 1 :(得分:0)
使用w+
时使用r+
或fopen
,具体取决于您要对文件执行的操作以及要创建文件或打开文件。
从(http://www.tutorialspoint.com/c_standard_library/c_function_fopen.htm)