Matlab 有条件地使用coder.extrinsics

Matlab 有条件地使用coder.extrinsics,matlab,matlab-coder,Matlab,Matlab Coder,这个问题涉及到Matlab编码器的外部功能。一些函数,如fprintf,在旧版本的Matlab中是外部函数,而在新版本中不是外部函数。有没有一种方法可以支持多个Matlab版本,ifcoder。Exterinstics只允许在顶层使用,并且不能将它放在ifif语句下?您不能有条件地直接将某些函数设置为Exterinstic。一种方法是使用两种不同的函数,如fprintf_old和fprintf_new。fprintf_old将具有coder.extrinsic声明,然后调用fprintf。fpr

这个问题涉及到Matlab编码器的外部功能。一些函数,如
fprintf
,在旧版本的Matlab中是外部函数,而在新版本中不是外部函数。有没有一种方法可以支持多个Matlab版本,if
coder。Exterinstics
只允许在顶层使用,并且不能将它放在if
if
语句下?

您不能有条件地直接将某些函数设置为Exterinstic。一种方法是使用两种不同的函数,如fprintf_old和fprintf_new。fprintf_old将具有coder.extrinsic声明,然后调用fprintf。fprintf_new可以调用fprintf而无需外部声明。现在,您可以在两个调用之间进行选择,方法是使用编译期间保持不变的条件检查您的版本。比如说,

if coder.const(isOlderVersion())
  fprintf_old();
else
  fprintf_new();
end

不能有条件地使某些函数直接成为外部函数。一种方法是使用两种不同的函数,如fprintf_old和fprintf_new。fprintf_old将具有coder.extrinsic声明,然后调用fprintf。fprintf_new可以调用fprintf而无需外部声明。现在,您可以在两个调用之间进行选择,方法是使用编译期间保持不变的条件检查您的版本。比如说,

if coder.const(isOlderVersion())
  fprintf_old();
else
  fprintf_new();
end

不能有条件地使某些函数直接成为外部函数。一种方法是使用两种不同的函数,如fprintf_old和fprintf_new。fprintf_old将具有coder.extrinsic声明,然后调用fprintf。fprintf_new可以调用fprintf而无需外部声明。现在,您可以在两个调用之间进行选择,方法是使用编译期间保持不变的条件检查您的版本。比如说,

if coder.const(isOlderVersion())
  fprintf_old();
else
  fprintf_new();
end

不能有条件地使某些函数直接成为外部函数。一种方法是使用两种不同的函数,如fprintf_old和fprintf_new。fprintf_old将具有coder.extrinsic声明,然后调用fprintf。fprintf_new可以调用fprintf而无需外部声明。现在,您可以在两个调用之间进行选择,方法是使用编译期间保持不变的条件检查您的版本。比如说,

if coder.const(isOlderVersion())
  fprintf_old();
else
  fprintf_new();
end
在代码生成中,指向在第一个参数中命名的函数。由于可以在控制流内部嵌入对
feval
的调用,因此可以使用它来选择性地外部调用函数,并将代码保存在单个源文件中:

if isOlderVersion()
  % Call fprintf extrinsically
  feval('fprintf');
else
  fprintf();
end
在代码生成中,指向在第一个参数中命名的函数。由于可以在控制流内部嵌入对
feval
的调用,因此可以使用它来选择性地外部调用函数,并将代码保存在单个源文件中:

if isOlderVersion()
  % Call fprintf extrinsically
  feval('fprintf');
else
  fprintf();
end
在代码生成中,指向在第一个参数中命名的函数。由于可以在控制流内部嵌入对
feval
的调用,因此可以使用它来选择性地外部调用函数,并将代码保存在单个源文件中:

if isOlderVersion()
  % Call fprintf extrinsically
  feval('fprintf');
else
  fprintf();
end
在代码生成中,指向在第一个参数中命名的函数。由于可以在控制流内部嵌入对
feval
的调用,因此可以使用它来选择性地外部调用函数,并将代码保存在单个源文件中:

if isOlderVersion()
  % Call fprintf extrinsically
  feval('fprintf');
else
  fprintf();
end