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

190 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

madhan ravi
madhan ravi il 23 Nov 2018
Modificato: madhan ravi il 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

Più risposte (1)

Stephen23
Stephen23 il 23 Nov 2018
Modificato: Stephen23 il 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

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by