How to remove indexed set of rows from a cell array
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
i have a cell array "corb " = 10×5 cell array
1- first question :
i want to find the indexes of all elements in the first column , 100000< element <300000
i tried this it doesn't work : row_indices = find(cell2mat(corb(:,1))>100000 & corb(:,1))<300000)
2- Second question :
once i have the vector containing row indexes values lets say its V=[ 3;5;10]
I would like to create a new cell array that has all of the rows from the original cell array EXCEPT for the rows specified by V. ( remove those rows).
so how to proceed
0 comentarios
Respuestas (2)
the cyclist
el 29 de Ag. de 2021
Editada: the cyclist
el 29 de Ag. de 2021
% Identify rows
row_indices = find(cell2mat(corb(:,1))>100000 & cell2mat(corb(:,1))<300000);
% Define new array that is the same as corb, but and remove rows
corb2 = corb;
corb2(row_indices,:) = [];
0 comentarios
Wan Ji
el 29 de Ag. de 2021
Editada: Wan Ji
el 29 de Ag. de 2021
Try this
logical_indices = arrayfun(@(i)corb{i,1}(1)>100000&corb{i,1}(1)<300000,(1:1:size(corb))');
row_indices = find(logical_indices); % actually this line can be deleted to save time
corb2 = corb(~logical_indices,:); % this is what you want
0 comentarios
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!