我在Simulink模型中使用Matlab功能块 . Input是1x32二进制流,Output y是0到15之间的整数 . 我在这个函数中定义了2个变量,名为chip = zeros(17,32)和reconst_op = zeros(1,32) . 我的问题是,当我在if条件中比较这两个变量时,如下所示:

函数y = De_Spreading_Mod(输入)

  • if all(reconst_op == chip(1,:))..做点什么..

或2.如果全部(reconst_op(1,:)== chip(1,:))

上述两种情况都会导致Matlab抛出错误如下:

对于情况1,尺寸不匹配(尺寸[:?x 32]〜=尺寸[1×32]) . 不匹配的变化和固定大小表示可能的运行时错误 . 如果此诊断不正确,请使用索引显式修改不同的大小 .

对于情况2,MATLAB功能接口错误:由于越界错误,模拟停止 . 运行时错误:尝试访问运行时大小为0的数据reconst_chip_op的1个元素 .

但是,如果我在一个单独的m文件中运行相同的代码片段,它按预期工作,但仅在Simulink嵌入式matlab功能块中,这是一个问题 .

任何帮助,将不胜感激