accepting values into an array, then accepting new values by shifting left
Mostrar comentarios más antiguos
I am calling a function in a different m file. I want this function to write newValues into an array. After 7 entries, the newValues need to be added to the end of the array and then shifted left in order to keep the values in order. Example: values accepted in the array are [1 2 3 4 5 6 7]. The new value is 8 which makes the array have values [2 3 4 5 6 7 8]. This is what I have so far....
function arrayWithLatestValues = fn_updateArray(newValue)
persistent A;
A = [A(2:end) newValue];
arrayWithLatestValues = A;
end
this is my output im getting:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
Respuesta aceptada
Más respuestas (1)
function outVec = fn_updateArray(newValue)
persistent newVec;
newVec = [newVec(max(1,end-5):end),newValue];
outVec = newVec;
end
and tested:
>> fn_updateArray(1)
ans = 1
>> fn_updateArray(2)
ans =
1 2
>> fn_updateArray(3)
ans =
1 2 3
>> fn_updateArray(4)
ans =
1 2 3 4
>> fn_updateArray(5)
ans =
1 2 3 4 5
>> fn_updateArray(6)
ans =
1 2 3 4 5 6
>> fn_updateArray(7)
ans =
1 2 3 4 5 6 7
>> fn_updateArray(8)
ans =
2 3 4 5 6 7 8
>> fn_updateArray(9)
ans =
3 4 5 6 7 8 9
>>
1 comentario
Michael Scott
el 11 de Abr. de 2018
Categorías
Más información sobre Environment and Settings en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!