使用add_line()出现“输入参数不足”错误

时间:2019-06-28 11:25:42

标签: matlab simulink

我正在尝试使用add_line()来组织带有'autorouting'参数的链接。

这是我的代码:

add_line(sprintf('%s',diagrammeName), [pos_array_out{pos_out};pos_array_in{pos_in}], 'autorouting','on');

其中pos_array_out是输出位置的单元格,pos_array_in是输入位置的单元格。

pos_inpos_out是单元格的索引。

但是它返回一个错误:

Not enough input arguments

为什么会出现此错误?

2 个答案:

答案 0 :(得分:1)

add_line()在使用名称/值对时具有三个必选参数:sysoutin,以及可选的名称-值对。分解您的输入:

add_line(sprintf('%s',diagrammeName),...
         [pos_array_out{pos_out};pos_array_in{pos_in}],...
         'autorouting','on'...
         );

直接告诉您问题所在。您有两个输入变量:1)sprintf('%s',diagrammeName),2)[pos_array_out{pos_out};pos_array_in{pos_in}]和名称/值对('autorouting','on')。因此,基本上,您将三个必填参数中的两个喂给了它,因此会出现错误。

我怀疑,由于您使用变量名的方式,您应该这样做

add_line(sprintf('%s',diagrammeName),...
         pos_array_out{pos_out},...
         pos_array_in{pos_in},...
         'autorouting','on'...
         );

即按照文档中的建议拆分outin变量。

add_line()接受的另一种输入类型是h = add_line(sys,points),在这种情况下,您有两个位置自变量,就像在这里一样,但是显然不能使用名称/值对。原因是前一种语法告诉您行的起点和终点,然后由名称/值对控制行的外观,即行实际经过的位置(在对象周围移动)。使用sys, points就像做plot(x,y)一样,它在预定点之间划了一条线。然后,使用名称-值对控制形状就变得毫无意义,因为您已经隐式地为形状提供了points


执行[a;b]创建一个数组,该数组是单个变量,因此会出错。

答案 1 :(得分:0)

编辑:我无法使用排名来组织模型