extract each ten values

5 次查看(过去 30 天)
Housam
Housam 2019-7-14
评论: Housam 2019-7-15
Hello,
I have a 60x23 cell and each cell consist of columns with different length.
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
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
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 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by