accepting values into an array, then accepting new values by shifting left
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Michael Scott
il 10 Feb 2018
Commentato: Michael Scott
il 11 Apr 2018
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
0 Commenti
Risposta accettata
possibility
il 10 Feb 2018
Modificato: possibility
il 10 Feb 2018
I'm guessing it is because of the persistent statement. Quote from the statement explanation:
" If the persistent variable does not exist the first time you issue the persistent statement, it will be initialized to the empty matrix."
If you have the vector as an input to the function, I believe the problem will be solved.
function arrayWithLatestValues = fn_updateArray(newValue,A)
A = [A(2:end) newValue];
arrayWithLatestValues = A;
end
Più risposte (1)
Stephen23
il 10 Feb 2018
Modificato: Stephen23
il 10 Feb 2018
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
>>
Vedere anche
Categorie
Scopri di più su Shifting and Sorting Matrices in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!