How to loop through a matrix, one row at a time using a for loop and conditions

202 vues (au cours des 30 derniers jours)
So I have a 4x2 matrix
Matrix = [20,5; 30, -6; 40,8; 50,10];
. And I want to create a for loop with if-else statement that goes through the matrix and test if either the row or col value is negative, then it would display something like 'neg'. If both values are positive, then there will be a function called; (lets say the function is called Func).
how do I go through and test each row and col value to see if it is neg or pos?
thanks

Réponse acceptée

madhan ravi
madhan ravi le 23 Nov 2018
Modifié(e) : madhan ravi le 23 Nov 2018
Read about logical indexing:
Matrix = [20,5; 30, -6; 40,8; 50,10];
for i = 1:size(Matrix,1)
if Matrix(i,1)<0 || Matrix(i,2)<0
disp('neg')
elseif Matrix(i,1)>0 && Matrix(i,2)>0
% some function
end
end

Plus de réponses (1)

Stephen23
Stephen23 le 23 Nov 2018
Modifié(e) : Stephen23 le 23 Nov 2018
Simpler:
M = [20,5;30,-6;40,8;50,10]
X = all(M>=0,2)
for k = 1:size(M,1)
if X(k)
M(k,:)
end
end

Catégories

En savoir plus sur Loops and Conditional Statements 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!

Translated by