【发布时间】:2026-01-24 13:05:02
【问题描述】:
我正在尝试使用 MATLAB Coder 工具箱将以下代码转换为 C:
function [idx] = list_iterator(compare, list)
idx = nan(length(list));
for j = 1:length(list)
idx(j) = strcmp(compare, list{j});
end
list 是一个 N x 1 的字符串元胞数组,compare 是一个字符串。该代码基本上将list 的每个元素与compare 进行比较,如果两者相同则返回1,否则返回0。 (我这样做是为了加快执行速度,因为 N 可能非常大 - 大约 10 到 2000 万个元素。)
当我在命令行窗口中运行codegen list_iterator 时,出现以下错误:
函数“list_iterator”的输入参数“比较”的类型 未指定。使用 -args 或预处理语句来指定 输入类型。
更多信息
==> list_iterator 行中的错误:1 栏目:18
代码生成失败:查看错误报告
使用代码生成时出错
我知道在使用codegen 时我应该指定输入的类型,但我不确定如何为字符串元胞数组执行此操作,其中的元素可以具有不同的长度。字符串compare 也可以有不同的长度,具体取决于函数调用。
【问题讨论】:
标签: matlab code-generation string-comparison matlab-coder