Implementation if statement with two different conditions

I have a code using if and else with two different condition 1. if FS1 <= 1 else FS1>1 2. if depth < 20 else depth>20
This is detail of my code: LPi_all=[ ]; for i=1:length(FS1);
depth_allD=[ ];
if FS1 <= 1
for j=1:length(depth);
if depth < 20 % F=1-Fs
w=(10-0.5*depth(j))
else depth > 20
w=0
LPi= (1-FS1(i))*w*3
end
else FS1>1
LPi= 0
end
end
I have a wrong position in the placement the second else.
Error: File: Input_RegLPI.m Line: 335 Column: 5
Illegal use of reserved keyword "else".
Is there any solution for my case
Thanks

 Accepted Answer

Hey @Skydriver, I see that the else condition inside the for loop does not have any if condition, Please refer to the below corrected code:
LPi_all = [];
for i = 1:length(FS1)
depth_allD = [];
if FS1(i) <= 1
for j = 1:length(depth)
if depth(j) < 20
w = (10 - 0.5 * depth(j));
else % This handles the case where depth(j) >= 20
w = 0;
end
LPi = (1 - FS1(i)) * w * 3;
% Collect LPi value for each depth(j)
depth_allD = [depth_allD, LPi];
end
else % This handles the case where FS1(i) > 1
LPi = 0;
depth_allD = [depth_allD, LPi];
end
LPi_all = [LPi_all; depth_allD];
end
Hope it helps.

1 Comment

Thanks. I appreciate with your answer it helpfull to solve my problem

Sign in to comment.

More Answers (1)

for j=1:length(depth);
if depth < 20 % F=1-Fs
w=(10-0.5*depth(j))
else depth > 20
w=0
LPi= (1-FS1(i))*w*3
end
should probably be
for j=1:length(depth)
w = nan;
if depth(j) < 20
w=(10-0.5*depth(j));
elseif depth(j) > 20
w=0;
end
LPi= (1-FS1(i))*w*3;
Notice the initialization of w to nan in order to catch the case where depth(j) is exactly 20, which is a case that your code does not define.

Categories

Asked:

on 20 Feb 2018

Answered:

on 28 Oct 2024

Community Treasure Hunt

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

Start Hunting!