Ошибка «Недостаточно входных аргументов» при использовании add_line () - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь использовать 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_in и pos_out являются индексами ячейки.

Но он возвращает ошибку:

Not enough input arguments

Почему я получаю эту ошибку?

Ответы [ 2 ]

1 голос
/ 28 июня 2019

add_line() имеет три обязательных аргумента при использовании пар имя-значение: sys, out и in и необязательные пары имя-значение.Разбивка вашего ввода:

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'...
         );

, т.е.разделите переменные out и in, как предложено в документации.

Другой тип ввода add_line() принимает это h = add_line(sys,points), в этом случае у вас есть два позиционных аргумента, как здесь,но не может использовать пары имя-значение, по-видимому.Причина этого в том, что прежний синтаксис сообщает вам, где начинается строка и где она заканчивается, а пары «имя-значение» управляют тем, как выглядит линия, т. Е. Где линия фактически проходит (перемещаясь вокруг объектов).Использование sys, points похоже на выполнение plot(x,y), оно рисует линию между предварительно заданными точками.Использование пары «имя-значение» для управления формой является спорным, поскольку вы уже неявно предоставляете фигуру с помощью points.


. Выполнение [a;b] создает массив, который является единственной переменной,отсюда и ошибка.

0 голосов
/ 05 июля 2019

Редактировать: я не могу организовать модель, используя Положение

...