gpt4 book ai didi

matlab - 在 Matlab 中运行外部程序失败但程序在外部运行

转载 作者:太空宇宙 更新时间:2023-11-03 19:47:59 25 4
gpt4 key购买 nike

我需要在 Matlab 中使用一个工具箱,它依赖于用 C 编写并使用 OpenCV 的外部程序。我正在使用 Ubuntu 14.04 64 位和 Matlab R2014b。

m-script 使用system 函数调用它,在C 程序运行后,它读取一些C 程序应该生成的输出文件。这是没有发生的。我观察到没有生成文件。

然后,我做的第一件事就是验证 C 程序是否正常工作,方法是直接在终端中调用它,使用与 m 脚本调用它时使用的参数相同的参数。然后它工作并生成文件。因此,C 程序是正确的并且可以工作。

回到Matlab,又失败了。然后,我开始调试 C 程序,发现 OpenCV 函数 cvLoadImage 在从 Matlab 调用时无法打开文件。如果我在外面调用它,它会起作用。

我验证了传递给从 Matlab 和外部运行的函数的字符串,它完全相同,但 Matlab 调用永远失败。我用 ldconfig -p | 验证了grep opencv 从 Matlab 命令窗口,它显示库。更有趣的是,在有问题的函数运行之前,还有对其他 ocv 函数的其他调用。只是这是失败的。

问题是:这是我部分错误配置的问题还是 Matlab 中的错误?

提前致谢。

编辑

实际上,从 Matlab 内部调用并在 system 调用后附加 sudo 即可完成工作。奇怪的是,因为我使用 chmod 777 -Rf 作为整个文件夹中的最后一个资源,并验证我的用户是文件夹和 Matlab 进程的所有者。奇怪...虽然我每次使用脚本时都必须输入密码,但我的日程安排很紧,我现在认为这个解决方法令人满意。

最佳答案

您可以尝试使用适用于 C 的 MATLAB 引擎 API 从您的 C 代码调用 MATLAB,而不是从 MATLAB 调用 C 函数: https://es.mathworks.com/help/matlab/calling-matlab-engine-from-c-programs-1.html

关于matlab - 在 Matlab 中运行外部程序失败但程序在外部运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28585180/

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