【问题标题】:Matlab error "Find requires variable sizing"Matlab 错误“查找需要变量大小”
【发布时间】:2013-10-14 20:58:25
【问题描述】:
[~,col] = find(ocpRefPt(2,:)>x1 & ocpRefPt(2,:)<x2 & ocpRefPt(1,:)>y1 & ocpRefPt(1,:)<y2);

About 是编译失败的那一行。上面的行是一个循环。 x1,x2,x3,x4 是标量(自然数) ocpRefPt 是一个 2x16 矩阵

Error: FIND requires variable sizing

这是什么意思。如何克服这个错误?

【问题讨论】:

  • 需要更多信息。 ocpRefPt 到底是什么样的(例如,举个例子)?
  • 打印每件事的size 将是我调试的第一步。
  • ocpRefPt 是一个 2x16 矩阵。但是我最终解决了这个问题的任何方法。问题是输出不是编译器需要的固定大小的输出。大小在运行时发生变化。我使用了一个固定矩阵,它终于解决了这个问题。

标签: matlab find matlab-coder


【解决方案1】:

看来您正在尝试使用emlmex 进行编译以制作嵌入式代码。错误是说find 的输出大小未知,显然编译器需要固定大小的输出。一种解释见this newsgroup post

这种编译方法似乎已经过时了——改用MATLAB codercodegen 命令):

emlmex 从 MATLAB 代码生成 C-MEX 文件。

emlmex [-options] fun1 [fun2 ...]

此功能已过时。用于通用加速 和代码生成使用CODEGEN

【讨论】:

  • 您好,非常感谢您的回复。我终于让它工作了。你说的对。编译器需要固定大小。由于大小在运行时发生变化,因此出错了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多