问题标签 [matlab-coder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
963 浏览

c++ - IntelliSense 错误标识符“emlrtStack”未定义

我正在通过“Matlab coder”将 MATLAB 编写的函数转换为 C。获得转换后的文件后,转换后的函数始终将第一个输入参数作为const emlrtStack *sp. 现在,当我尝试在 VC++ 2013 上对其进行测试时,IntelliSense 给出了上述错误。

我手动尝试在emlrt.h文件中找到这个标识符,但那里没有这样的东西。我试图用两个输入参数转换一个简单的乘法函数[如c=mul(a,b) ],但除了ab之外,转换后的函数在函数内部还有这个额外的参数。(这意味着此参数不是特定于函数的)。

如果有人对此有解决方案或遇到过此类问题,请分享或帮助。

此外,如果有人知道如何简单地测试这些转换后的函数,那将是非常感谢的额外帮助。

0 投票
1 回答
1418 浏览

matlab - 如何在 Simulink 中创建一个大小增加的全局数组

我想在 Simulink 的 Matlab 功能块中创建一个全局数组,每次调用 Matlab 功能块时,它的大小都会增加。在 Matlab 功能块中创建全局变量的唯一方法是将其链接到“数据存储内存”块,但这不允许我创建大小增加的数组。

我目前在 Matlab 功能块中使用本地数组,并将数组的内容写入文件,然后退出功能块并在下一次迭代中读取它。但这会减慢执行时间。有没有更好的方法来做到这一点?

0 投票
2 回答
2207 浏览

matlab - 运行 Simulink 模块时出现错误,但单独运行相应的 M 文件时会成功

我想使用 USRP 传输编码图像。第一步是使用 Matlab 加载图像并对其进行编码。各代码如下所示。

而这个M文件的运行结果是:ans =

由于我要使用SDRU发射器的模块,所以我必须将上述代码编码成一个matlab函数,如下图所示。 在此处输入图像描述

但是当我运行这个块时,会弹出错误窗口,如下图所示。

在此处输入图像描述

第一个错误是:

第二个错误是

第三个错误和第四个错误是一样的。

我认为第二个,第三个和第四个错误是由于第一个错误,

我在互联网上搜索了一整天,仍然找不到类似的问题。谁能告诉我到底什么是“不支持订阅 mxArray”以及如何解决它?

提前感谢任何领导!

0 投票
1 回答
85 浏览

matlab - 执行数学运算时,Mexed 函数的差异非常小

因此,我使用 MATLAB 的 Coder 工具包尝试了矩阵指数函数,并构建了它。我继续测试,看看结果是否可靠和更有效。虽然代码更快,但它产生的答案非常轻微。

我运行了原始函数并得到了答案:

然后我用相同的输入运行了函数的混合版本:

乍一看,这两个矩阵是相等的,但实际上它们相差很小:

大部分结果与原来的函数等价,但有些不是。此外,两者之间的差异是如此之小,以至于我无法相信这将是一个数学错误,而不是一个精度错误。我之所以如此关心这个,是因为这确实会导致我使用该功能的重叠原因出现问题。

mex 功能关闭这么少有什么原因,有没有办法解决这个问题?

0 投票
2 回答
385 浏览

matlab - MATLAB:MEX 矩阵除法给出与 m 文件不同的结果

我使用 MATLAB 的编码器工具创建了矩阵指数函数的 MEX 版本,用于另一组函数。问题是,MEX 版本给出的结果与原始 m 文件不同。

经过调试,我认为是这个原因,是因为MEX文件和m文件不做矩阵除法(\)相同。或者 MEX 文件首先存在问题。通往发生矩阵除法的行的所有变量在两边都是等价的。

这是发生问题的行:

其中 I 是 V 和 U 大小的单位矩阵。

MEX 文件进行矩阵除法时出现差异的原因是什么,我该如何解决这个问题?这行代码可以不用除法重写吗?

0 投票
1 回答
127 浏览

matlab - 是否有支持 2010SP1 版本的编码器产品(嵌入式、Simulink 或 Matlab)

我正在寻找一种可以将我的 Matlab 代码转换为 C++ 代码的产品。我已经广泛研究了 Matlab Coder,但它似乎还不够,因为它仅与 2011a 以后的 Matlab 版本兼容。我打算研究其他编码器产品(Embedded/Simulink),但它们都将 Matlab Coder 列为要求。

我有 Matlab 编译器,但我一直在寻找可以完全转换我的代码并允许它在没有任何 Matlab/MCR 依赖项的情况下运行的产品。

是否有其他的 Matlab 或第三方产品可以将我的代码转换为 C++,或者我只需要将代码交给它?

0 投票
1 回答
208 浏览

sparse-matrix - MATLAB 表达式“Mf”的稀疏度不正确

您好我正在尝试通过命令“coder”将函数转换为 .mex 函数。我的输入之一是稀疏双矩阵。当编码器要求定义变量“Mf”的类型时,我将其设置为双精度(:inf x:inf)。它构建它并在运行该函数时停止并显示以下消息:“MATLAB 表达式'Mf'不是正确的稀疏度”

我将不胜感激任何建议和解决方案。谢谢!

0 投票
1 回答
852 浏览

matlab - alternatives to lsqlin MATLAB

Ok so I have a script that runs among other things lsqlin optimization function millions of times. To speed up this code I "codegen" it (basically automatically creates some mex files). This is a followup of Linear systems of inequations.

The problem here is that lsqlin as well as other optimization functions are not transformed and need to be called externally, which leads to loss of efficient.

I already found the MINQ toolbox but could not understand how to translate from lsqlin to this. Also found the QPC toolbox which requires a licence, which I am currently waiting.

Does anyone suggest another toolbox and how to convert from lsqlin to that?

General idea to codegen a lsqlin script (as can be seen a link is called and not a full conversion).

CODE:

RUN:

0 投票
1 回答
96 浏览

matlab - 如何使 Coder 工具包创建的 MEX 文件可供其他人使用

我使用 MATLAB 的 Coder 工具包创建了一个 MEX 文件,它在我的计算机上运行良好,但是,当我将它发送给其他人使用时,它出错并且无法运行。

正确分发和允许其他人能够使用我的 MEX 文件/代码的正确步骤是什么?

附带说明一下,(我不确定这对我的问题有多大影响)但是在编码器创建的 C 代码文件中,它具有导致我计算机上的目录的变量,而不是具有相对路径。

0 投票
1 回答
262 浏览

mex - matlab coder:当它应该始终是 2-D 时,不能转置被错误地认为是 3-D 的矩阵

我有一个希望转换为 MEX 文件的函数(代码如下)。我正在尝试使用 matlab 编码器来做到这一点。

问题出现在下面的第二行,因为它无法转置 ND 矩阵而引发错误。

Matlab 编码器识别c为 size 1 x :? x :?,这是正确的。然后该d = shiftdim(c,1)线应产生一个大小为 2D 的矩阵:? x :?,然后我将其转置。但是,它未能正确移动 的尺寸d,并赋予其尺寸:? x :? x :?。这会导致转置错误。我该如何解决这个问题?此外,为了我自己的启迪,为什么 matlab 编码器无法正确分配我的变量的维度,特别a是 、bcddistances