gpt4 book ai didi

c - Matlab 在 Mex 文件中的 fopen 上崩溃

转载 作者:行者123 更新时间:2023-11-30 17:13:25 26 4
gpt4 key购买 nike

我对 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);
}

所以我添加了 ffopenfprintffclose 命令的声明。我使用 MS Visual Studio C++ 2013 Professional (C) 作为编译器,代码编译得很好。通过取消注释所有更改并再次一点一点地引入它们,我发现 Matlab 在执行 fopen 命令时崩溃。

我无法在这里或其他地方找到有用的帮助,所以非常欢迎任何建议。预先非常感谢!

亲切的问候

菲利普

最佳答案

使用 fopen 时使用 w+r+,具体取决于您要对文件执行的操作以及是否要创建它或只需打开它即可。

来自 ( http://www.tutorialspoint.com/c_standard_library/c_function_fopen.htm )

  • "r"打开文件进行读取。该文件必须存在。
  • "w"创建一个用于写入的空文件。如果已存在同名文件,则其内容将被删除,并且该文件被视为新的空文件。
  • "a"附加到文件。写入操作,在文件末尾追加数据。如果文件不存在,则创建该文件。
  • “r+” 打开文件以更新读取和写入。该文件必须存在。
  • “w+”创建一个空文件以供读写。
  • “a+”打开文件进行读取和追加。

关于c - Matlab 在 Mex 文件中的 fopen 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30861018/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com