【问题标题】:call matlab ifft from c从 c 调用 matlab ifft
【发布时间】:2017-12-13 13:01:45
【问题描述】:

我有一个简短的问题:我想从 c 代码中调用 matlab 函数 ifft (快速傅立叶逆变换)

我试图理解 c 的 matlab api,但我找不到任何关于如何传递参数或如何在 c 代码中调用 matlab 内部函数的示例

任何提示将不胜感激!

朱莉娅

【问题讨论】:

  • Matlab 的 FFT 是在 FFTW 之上实现的。所以你最好直接使用它。
  • ok 听起来很公平,我认为调用 matlab 比调用 fftw 更容易

标签: c matlab api fft ifft


【解决方案1】:

您可以使用 MATLAB Coder 应用程序从脚本生成 C 代码。这应该使 ifft 可调用。最丑陋的方法是 exec() matlab 并重新摄取其输出。奥利弗的回答当然是最干净和最好的路线。

【讨论】:

    【解决方案2】:

    使用基于 c/c++ 的函数供 MATLAB 调用的方法是构建一个 mex 文件。基本步骤是:

    1. 写一个 c/c++ 脚本,比如 ifft()

    2. 构建它(例如使用 Visual Studio)以生成 .mex(64 位系统为 .mexw64)文件。

    3. 获得 .mex 文件后,从 MATLAB 代码中调用 ifft()

    MATLAB 和 c/c++ 代码之间的接口应该遵循一定的规则。这是一个你可以参考的例子:

    https://www.mathworks.com/help/matlab/matlab_external/standalone-example.html

    以下是如何将 c/c++ 脚本构建到 .mex 文件中: https://www.mathworks.com/help/matlab/ref/mex.html

    .mex 文件非常像一个库。编译好之后,把它和MATLAB脚本放在同一个文件夹下,就可以运行了。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      • 1970-01-01
      • 2016-08-18
      相关资源
      最近更新 更多