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

129 次查看(过去 30 天)
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

采纳的回答

madhan ravi
madhan ravi 2018-11-23
编辑:madhan ravi 2018-11-23
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

更多回答(1 个)

Stephen23
Stephen23 2018-11-23
编辑:Stephen23 2018-11-23
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

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by