extract each ten values
3 次查看(过去 30 天)
显示 更早的评论
Hello,
I need to extract ten values starting from last ten values, then shift by one value and repeat.
In other words, after extacting the last ten values (end-9: end), i need to omit the last value. then extract the ten values before that. so on.
What would be the best way to achieve that? Thank you for the insights.
1 个评论
dpb
2019-7-14
As described, probably a loop just recomputing the indices.
It's not clear, however, whether this is a moving-by-one element process or in groups of ten non-overlapping elements--the end objective could possibly be accomplished for either of those by far more efficient manners -- filter for the first, perhaps, or reshape by the 10 factor by columns for the latter for vector processing by column.
"It all depends..."
Give us a concrete example of what you're really after...
采纳的回答
Image Analyst
2019-7-14
Try a loop to get the contents of the cells in your cell array, then extract 10 elements and move back towards the beginning of your vector one element at a time.
[rows, columns] = size(ca); % ca is your cell array with variable sized matrices in the cells.
for col = 1 : columns
for row = 1 : rows
% Get the array inside this cell from the cell array.
thisVector = ca{row, col};
% Get the size of this vector
vecCols = length(thisVector);
% Get last 10 values and move one element at a time towards the beginning of the vector.
len = length(vecCols);
for k = len - 9 : -1 : 1
last10 = vecCols(k : k+9);
% Now do something with last10.....
% I don't know what that would be - you haven't told us.
end
end
end
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!