Remove all number that comes after in cell array
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Jorg Woehl
le 8 Mar 2021
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?
Réponse acceptée
Jan
le 9 Mar 2021
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
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!