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

 採用された回答

BhaTTa
BhaTTa 2024 年 10 月 21 日

0 投票

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 件のコメント

Skydriver
Skydriver 2024 年 10 月 27 日
移動済み: Voss 2024 年 10 月 28 日
Thanks. I appreciate with your answer it helpfull to solve my problem

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2024 年 10 月 28 日

0 投票

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.

カテゴリ

質問済み:

2018 年 2 月 20 日

回答済み:

2024 年 10 月 28 日

Community Treasure Hunt

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

Start Hunting!

Translated by