How to code a generic for loop that removes a row with missing requirement

I am trying to create a generic program using a for loop that removes the row if a user checks their number against it and it is not there. A matrix will have unspecified number of rows and columns, a user will input their value say n, if the user's n is not in row k of A, row k should be deleted.
A = magic(50);
row = size(A,1);
n = 3; %or whatever number
for r = 1:1:row
if not(ismember(n, A)) %if n is not a member of whatever row it is on, it should be deleted
%what goes in here?
end
end

 Akzeptierte Antwort

A = magic(50);
row = size(A,1);
n = 3; %or whatever number
rows_to_delete = [];
for r = 1:1:row
if ~ismember(n, A(r,:)) %if n is not a member of whatever row it is on, it should be deleted
rows_to_delete(end+1) = r;
end
end
% delete the rows
A(rows_to_delete,:) = [];

3 Kommentare

Or, without the loop:
A = magic(50);
n = 3;
A(~any(A == n,2),:) = [];
This is exactly what I was looking for, thank you!
You're welcome!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

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

Tags

Gefragt:

am 1 Apr. 2022

Kommentiert:

am 2 Apr. 2022

Community Treasure Hunt

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

Start Hunting!

Translated by