Когда ваш график находится в режиме отладки, можно протестировать симуляцию путем изменения значений данных в графике. После того, как подсказка 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
.