Delete rows from cell array in a for loop

2 Ansichten (letzte 30 Tage)
Dexter
Dexter am 24 Okt. 2022
Bearbeitet: Jan am 24 Okt. 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 Kommentare
Jan
Jan am 24 Okt. 2022
Is this a typo: "delete row 3 but I want to have row 2 and 3"? Do you mean row 1 and 2?
Dexter
Dexter am 24 Okt. 2022
Yes

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Jan
Jan am 24 Okt. 2022
Bearbeitet: Jan am 24 Okt. 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

Weitere Antworten (1)

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

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by