Reading out a Vector via a countermodel in simulink

조회 수: 6 (최근 30일)
David
David 2014년 2월 26일
댓글: David 2014년 2월 26일
Hi,
i have to give the single elements of a vector one after the other out. So I decided to build a countermodel.
The Counter works i connected it to a scope and it Counts up in steps of 0.01sec from 0 up to 39. It gives out the variable n.
Then i connected n to the following user-defined function:
Vector=[207;160;0;0;0;6;4;7;10;14;0;44;122;224;16;32;0;16;144;80;128;128;197;167;14;0;0;15;15;0;0;0;0;86;116;235;10;65;241]; Output=Vector(n,1);
The Output of the user-definned function is connected to a scope because i want to test if it works but when i start the Simulation i get following error:
Simulation stopped due to out of bounds error. Block MATLAB Function (#112) While executing: none
Can anyone help me?
Thanks a lot!
Greetings

채택된 답변

Mischa Kim
Mischa Kim 2014년 2월 26일
편집: Mischa Kim 2014년 2월 26일
David, are you specifying a value for n? For example (for testing purposes) use the following Simulink model
with the following code inside the MATLAB function.
function y = fcn(n)
Vector = [207;160;0;0;0;6;4;7;10;14;0;44]; % vector cut off for readability
y = Vector(n,1);
You could specify n in the MATLAB function, or, as an external input for the function.
  댓글 수: 3
Mischa Kim
Mischa Kim 2014년 2월 26일
Make sure that you are indexing correctly. The first element of the vector is Vector(1), the last is Vector(39).
I am not sure, how you are doing the counting, but if you are using a standard Simulink counter, by default the initial output is 0. This can be "fixed" by simply adding a constant 1 to the counter output. If you do so, make sure the counter quits (limit) at 38 ( + 1 = 39 ).
David
David 2014년 2월 26일
Thanks,it works!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Event Functions에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by