Delete rows from cell array in a for loop

2 views (last 30 days)
Dexter
Dexter on 24 Oct 2022
Edited: Jan on 24 Oct 2022
Hi, I want to delete one row in each iteration in a for loop. For example in iteration 1 I want to delete row 1, in iteration 2 I want to delete row 2 but I want to have row 1 in my cell array, in iteration 3 I want to delete row 3 but I want to have row 2 and 3 in my cell array. How can I do it?
  2 Comments
Jan
Jan on 24 Oct 2022
Is this a typo: "delete row 3 but I want to have row 2 and 3"? Do you mean row 1 and 2?

Sign in to comment.

Accepted Answer

Jan
Jan on 24 Oct 2022
Edited: Jan on 24 Oct 2022
C = num2cell(magic(4));
C = 4×4 cell array
{[16]} {[ 2]} {[ 3]} {[13]} {[ 5]} {[11]} {[10]} {[ 8]} {[ 9]} {[ 7]} {[ 6]} {[12]} {[ 4]} {[14]} {[15]} {[ 1]}
n = height(C)
for k = 1:n
C2 = C;
C2(k, :) = [];
... your calculations come here
end
% Or:
m = true(n, 1);
for k = 1:n
m(k) = false;
C2 = C(m, :);
m(k) = true; % Reset for next iteration
... your calculations come here
end

More Answers (1)

David Hill
David Hill on 24 Oct 2022
for k=1:100
a=yourCell;%just copy yourCell to another variable
a(k,:)=[];%deletes row k
end

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!