В Китае для решения проблемы выразительности и сохранения лаконичности синтаксиса было введено понятие «пустого узла». Пустой узел фактически представляет собой модуль, который напрямую пересылает входные данные на выход. Это позволяет пользователям ставить метки в любом месте линейного соединения и ссылаться на них в другом (или даже в том же самом) выражении. Например, для представления цикла:
╭───╮ ┌─────┐ ╭───╮
│ u ├───►(x)───►│ 1/s ├────┬────►│ x │
╰───╯ ▲- └─────┘ │ ╰───╯
│ ┌───┐ │
└────┤ k │◄──────┘
└───┘
С помощью пустых узлов можно легко выразить это с помощью Ligral:
u-k*x -> Integrator -> x;
Пустые узлы широко используются в Ligral, поэтому мы упростили синтаксис объявления пустых узлов. Полное объявление должно быть Node[x], но в интерпретаторе все идентификаторы, которые не были объявлены, автоматически обрабатываются как пустые узлы. Однако это может вызвать проблему, если пользователь случайно неправильно напишет имя идентификатора или должен был объявить идентификатор, но не сделал этого. В этом случае идентификатор будет распознан как новый пустой узел, что приведет к неожиданной ошибке (обычно это сообщение о том, что узел не подключен). Эту проблему необходимо решить, но пока нет хорошего способа ее решения.
В Simulink построение матрицы из скаляра осуществляется с помощью модуля Mux; наоборот, преобразование матрицы в скаляр выполняется через модуль DeMux. Соответствующие модули в Ligral — это серии Stack и Split (Ligral различает направления строк и столбцов). На данный момент последний шаг использует Split, а не VSplit, потому что скаляры и матрицы еще не унифицированы, и данные после разложения VSplit по-прежнему являются матрицей, а не скаляром.
(1, 2) -> HStack -> row1; (3, 4) -> HStack -> row2; (row1, row2) -> VStack -> mat;
mat -> HSplit -> (col1, col2); col1 -> Split -> (item11, item21); col2 -> Split -> (item12, item22);
Однако в текстовом языке операции с матрицами можно упростить еще больше.
[1, 2; 3, 4] -> mat -> [item11, item12; item21, item22];
Это больше соответствует привычкам пользователей текстовых языков.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )