Remove all number that comes after in cell array

Hello again, I have a 45x1 cell 'ddindexcell' with numbers of different dimensions. Then I have a list of numbers 'indend2'.
What I'd like to achieve is to remove all the numbers that comes after indend2, if found in the cell.
Example:
A = [1, 2, 3, 4, 5] B = [3, 59, ... ]
[20]
[57, 58, 59, 60]...
The output would be:
Output = [1, 2, 3]
[20]
[57, 58, 59]
Perhaps changing it into an array would make the whole process friendlier, but I'm not sure.
How can I acheive this? Thanks in advance.

2 个评论

Hi Jonathan, just to make sure I understand your problem correctly: I can see how B is supposed to act on the cell array A if the number listed in B is found in the cell of A. And if it is not found in A (such as in [20]), are the next cells of A simply skipped until the number listed B (i.e. 59 in your example) is found in a subsequent cell of A?

请先登录,再进行评论。

 采纳的回答

With some bold guessing:
A = {[1, 2, 3, 4, 5], [20], [57, 58, 59, 60]};
B = [3, 59];
iB = 1;
for iA = 1:numel(A) % Loop over elements of A
index = find(A{iA} == B(iB)); % Search current B
if ~isempty(index) % If a match is found:
A{iA} = A{iA}(1:index); % Crop current A
iB = iB + 1; % Select next B
end
end

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by