Когда ваш график находится в режиме отладки, можно протестировать симуляцию путем изменения значений данных в графике. После того, как подсказка debug>> появляется, как описано в Смотрят Stateflow Data в Окне Команды MATLAB, можно присвоить различное значение данным. Чтобы изменить значение данных, введите новое значение в подсказке с помощью следующего формата:
data_name = new_value
Чтобы изменить значения данных непосредственно в Окне Символов, смотрите, Управляют Данными, Событиями и сообщениями в Окне Символов.
Для списка данных, которые вы не можете изменить, смотрите Данные, Которые Только для чтения Во время Симуляции. Вы не можете изменить значения данных сообщения в командной строке.
Предположим, что, после того, как подсказка debug>> появляется, вы вводите whos в подсказке и видите следующие данные:
Name Size Bytes Class
airflow 1x1 1 uint8 array
temp 1x1 8 double array| Измениться... | К этому значению... | Войти... |
|---|---|---|
airflow | 2 | airflow = uint8(2) |
temp | 68.75 | temp = 68.75 |
При попытке ввести airflow = 2, вы получаете сообщение об ошибке, потому что MATLAB® интерпретирует то выражение как присвоение значения double к данным типа uint8. Для ссылки смотрите Случаи, Когда Кастинг Будет Необходим.
Предположим, что, после того, как подсказка debug>> появляется, вы вводите whos в подсказке и видите следующие данные:
Name Size Bytes Class
ball_interaction 16x16 256 int8 array
last_vel 16x2 256 double array
stopped 16x1 16 int16 array
| Измениться... | К этому значению... | Войти... |
|---|---|---|
Элемент в строке 8, столбце 8 ball_interaction | 1 | ball_interaction(8,8) = int8(1) |
Элемент в строке 16, столбце 1 last_vel | 120.52 | last_vel(16,1) = 120.52 |
Последний элемент в stopped | 0 | stopped(16) = int16(0) |
Индексация на основе одна применяется, когда вы изменяете значения данных Stateflow®, в то время как график находится в режиме отладки.
Предположим, что, после того, как подсказка debug>> появляется, вы вводите whos в подсказке и видите следующие данные:
Name Size Bytes Class
y1 1x1 8 double array (variable sized: MAX 16x16)
y2 1x1 8 double array (variable sized: MAX 16x4)| Измениться... | К... | Войти... |
|---|---|---|
y1 | 10 5 массив из единиц | y1 = ones(10,5) |
y2 | 6 4 массив нулей | y2 = zeros(6,4) |
Изменение размерностей данных переменного размера работает только, когда новый размер не превышает границы размерности.
Предположим, что, после того, как подсказка debug>> появляется, вы вводите whos в подсказке и видите следующие данные:
Name Size Bytes Class
y_n1 1x1 2 fixpt (int16 array (2^-10)*SI)
x_n1 1x1 2 fixpt (int16 array (2^-12)*SI)
И y_n1 и x_n1 подписали фиксированные точки с размером слова 16. y_n1 имеет дробную длину 10, и x_n1 имеет дробную длину 12.
| Измениться... | К этому значению фиксированной точки... | Войти... |
|---|---|---|
y_n1 | 0.5410 | y_n1 = fi(0.5412,1,16,10) |
x_n1 | 0.4143 | x_n1 = fi(0.4142,1,16,12) |
Для получения дополнительной информации об использовании объектов fi см. документацию Fixed-Point Designer™.
Предположим, что, после того, как подсказка debug>> появляется, вы вводите whos в подсказке и видите следующие данные:
Name Size Bytes Class
CurrentRadioMode 1x1 4 int32 array
MechCmd 1x1 4 int32 arrayПримите, что CurrentRadioMode и MechCmd используют перечислимые типы RadioRequestMode и CdRequestMode, соответственно.
| Измениться... | К этому перечисляемому значению... | Войти... |
|---|---|---|
CurrentRadioMode | CD | CurrentRadioMode = RadioRequestMode.CD |
MechCmd | Игра | MechCmd = CdRequestMode.PLAY |
Необходимо включать перечислимый тип явным образом в присвоение. В противном случае ошибка появляется в подсказке debug>>.
Вы не можете изменить данные следующих осциллографов, в то время как график находится в режиме отладки:
Постоянный
Входной параметр
Следующие свойства данных не могут измениться:
Тип данных
Размер
Однако для данных переменного размера, можно изменить размерности данных, пока размер находится в пределах границ размерности. Например, varsizedData = ones(5,7); является допустимым присвоением для переменного размера 10 10 массив.
Не присваивайте значение, которое выходит за пределы области значений значений, которые может представлять фиксированная точка. Постарайтесь не выбирать значение, которое вызывает переполнение.
Знак, размер слова, дробная длина, наклон и смещение не могут измениться.
Вы не можете изменить тип данных или размер никаких полей.
Сложение или удаление полей не работают, потому что размер структуры не может измениться.
Когда вы изменяете значение данных, необходимо явным образом бросить значения для данных следующих встроенных типов:
single
int32
int16
int8
uint32
uint16
uint8
Например, следующие присвоения допустимы:
my_data1 = uint8(2)
my_data2 = single(5.3)
Кастинг не необходим, когда вы изменяете значение данных, которые имеют тип double.