代码:排除/忽略代码部分?

60次(最近30天)
亚历克斯
亚历克斯 2013年10月25日
评论道: Jan Siegmund2020年3月18日
我使用编码器生成C源代码。当然,许多matlab函数对于编码器是不可用的。但我还是想在matlab中运行代码时使用这些函数。
目前,在生成C源代码时,我必须注释掉所有这些对代码不友好的部分。有没有什么东西可以让程序员忽略它们?
1评论
肖恩·德Wolski
肖恩·德Wolski 2013年11月4日
Alex,请联系技术支持,让他们知道你想为哪些功能提供代码生成金宝app支持。

登录评论。

接受的答案

迈克何西阿书
迈克何西阿书 2013年10月28日
你可以把它们包起来
如果coder.target (MATLAB的
...
结束
如果出现了错误,
如果isempty (coder.target)
...
结束
您也可以将不支持的函数声明为“外部的”,并在生金宝app成的mex文件中使用它们。这种做法有一些缺陷,如果涉及到不受支持的数据结构,它可能会相当复杂和高级。金宝app然而,在更简单的情况下,它是非常简单的。如果foobar()是MATLAB函数,你将传递,比如说,一个m × n矩阵,而foobar返回,比如说,一个1 × n向量(例如,这是SUM将对一个m × n矩阵做的事情,其中m和n都不是1),你会写:
coder.extrinsic (“foobar”);
y = 0(1、尺寸(x, 2));
y = foobar (x);
或者,如果你不想搅乱code . external:
y = 0(1、尺寸(x, 2));
y =函数宏指令(“foobar”, x);
y = zeros(…)行看起来像是白费力气,但它真正做的是在下一行告诉编译器预期的内容,因此它可以从MATLAB返回的数据复制到本地存储。基本上,如果您知道给定输入类型的函数将返回什么,那么只需将输出变量初始化为适当的类型,然后调用该函数。
7评论
Jan Siegmund
Jan Siegmund 2020年3月18日
更新:甚至函数句柄不受支持:金宝app
“@ischar”函数句柄是不支持定金宝app点转换。

登录评论。

更多的答案(0)

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!