How I can optimize my code for a stack construct?
2 views (last 30 days)
In reality I have nine variables with scalar values. For them, I have built a stack construct (last in first out) with following logic: push (only for three variabled from nine, as an example)
stack(end+1:end+3) = [value1, value2, value3];
read and pop is
value3 = stack(end); stack = ;
value2 = stack(end); stack = ;
value1 = stack(end); stack = ;
In my script I call these code lines over 8 million time each and that is why I wish the time could be less. Can you help me to optimize the code lines and decrease the speed?
Rik on 19 Apr 2021
Dynamically growing a variable is generally slow, because Matlab needs to copy the entire array.
You could pre-allocate a stack and use a counter to keep track of the position in the stack.