Диаграмма потока состояний и C Язык действий. Установить значения массива для подачи в выходной вектор за один шаг - PullRequest
0 голосов
/ 25 апреля 2020

Прошу прощения, возможно, это глупый вопрос, но у меня есть проблема, чтобы установить переменную массива в диаграмме потока состояний, используя C Язык действий.

Обычно на c языке, который я могу поставить в моем массиве stati c все значения с "A [] = {1,3,2};", но в диаграмме потока состояний с C ActionLanguage, как я могу это сделать? (в языке matlab, но мне нужно C) Я определил свою переменную с выходной областью (потому что это так), установил размер как 3 (я хочу массив из 3 элементов), установил Первый индекс как "0 "и введите int8.

Если хотите в выходной массив" 1,2,3 ", я пишу" gates = [1,2,3]; ", я пробовал также" gates = [1 2 3] ", et c, но я получаю синтаксическую ошибку. Какие у меня ошибки? Я читал по этой ссылке: https://it.mathworks.com/help/stateflow/ug/operations-for-vectors-and-matrices.html

Назначение значений для всех элементов матрицы В диаграммах, которые используют MATLAB в качестве языка действий, вы можете использовать одно действие указать все элементы вектора или матрицы. Например, это действие назначает каждому элементу матрицы 2 на 3 другое значение: A = [1 2 3; 4 5 6]; В диаграммах, которые используют C в качестве языка действий, вы можете использовать скалярное расширение, чтобы установить для всех элементов вектора или матрицы одинаковое значение. Скалярное расширение преобразует скалярные данные в соответствии с размерами векторных или матричных данных. Например, это действие устанавливает все элементы матрицы A равными 10 A = 10;

, но не объясняет, как установить разные значения во всем массиве, а также мне нужно, чтобы вывод из Диаграмма потока состояний за один шаг :(. На изображении есть шаг с синтаксической ошибкой. Кто-то может объяснить мне, как я могу решить? Скриншот диаграммы потока состояний

спасибо!

1 Ответ

0 голосов
/ 02 мая 2020

Ну, есть два способа сделать это:

  1. Определить значения для ex: g1 = [1 0 0]; g0 = [0,0,0] в рабочем пространстве MATLAB. А затем в вашем потоке состояний используйте такие значения, как gates = ml.g1; Это работает с C языком действий. (Прикрепленное изображение дает предварительный просмотр этого метода) enter image description here
  2. Реализация для l oop (возможно, графическая функция или функция MATLAB ) внутри диаграммы, которая используется для присвоения значений выходному массиву.

Мне кажется, что с первым методом проще работать, если ограничено число значений, которые принимает переменная 'gates'. Остальное go для метода 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...