Nested if statement not perusing all if statements

1 view (last 30 days)
matrixA = rand(100,2)
matrixB = zeros(100,1)
a= 78.6
b = 90.6
c = 99.5
d = 156.1
for i = 1:100
if matrixA(i,2) < 0
matrixB(i,1) = i/a*i
else if matrixA(i,1) >=0 <= a
matrixB(i,1) = b/c
else if matrixA(i,1) > a <= b
matrixB(i,1) = a/d*5
else if matrixA(i,1) > c <=d
matrixB(i,1) = a*d*c
else if martixA(i,1) >d
matrixB(i,1) = 78/b*d
end
end
end
end
end
end
I cant get the code to peruse through all the else if statements. It will only peruse the first else if statement then skip the rest.

Accepted Answer

Mischa Kim
Mischa Kim on 25 Jun 2015
Edited: Mischa Kim on 25 Jun 2015
Justin, almost there...
for i = 1:100
if matrixA(i,2) < 0
matrixB(i,1) = i/a*i
elseif matrixA(i,1) >=0 && matrixA(i,1) <= a
matrixB(i,1) = b/c
elseif matrixA(i,1) > a && matrixA(i,1) <= b
matrixB(i,1) = a/d*5
elseif matrixA(i,1) > c && matrixA(i,1) <= d
matrixB(i,1) = a*d*c
elseif martixA(i,1) > d
matrixB(i,1) = 78/b*d
end
end
  • elseif is one word.
  • Two conditions (e.g. range of values) need to be combined with a logical &&

More Answers (0)

Community Treasure Hunt

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

Start Hunting!