2015-04-24 10 views
0

Я хочу переместить массив в stateflow на один элемент.Shift array in stateflow

В MATLAB, я хотел бы использовать circshift или этот код:

>> x = [1:5] 
x = 
    1  2  3  4  5 
>> x(2:end) = x(1:end-1) 
x = 
    1  1  2  3  4 
>> x(1) = 0 % New Value 
x = 
    0  1  2  3  4 

Как я могу это реализовать на языке Stateflow действий. Встроенная функция matlab невозможна из-за цели в реальном времени.

Я попытался это:

{x[2:end] = x[1:end-1]; 
x[1] = 0;} 

но то синтаксическая ошибка. Для цикла должен быть также возможен, но то странно мне в MATLAB :-)

Заранее спасибо

+2

Функция MATLAB (что вы называете встроенным MATLAB) возможна для цели в реальном времени. Фактически, это именно то, для чего они предназначены. – am304

+2

@ am304, согласовано. Вы также можете рассмотреть возможность использования [MATLAB в качестве языка действия] (http://www.mathworks.com/help/stateflow/ug/modify-the-action-language-for-a-chart.html) для вашей диаграммы Stateflow, поскольку ['circshift' поддерживает генерацию кода] (http://www.mathworks.com/help/coder/ug/functions-supported-for-code-generation--alphabetical-list.html) –

ответ

0

Оба ответа в комментариях помог: Matlab функция работает также с моей целью и circshift работает отлично.