Problem with Nested if statements

6 views (last 30 days)
Hi everyone, I am using nested if statements to perform a subsection of my project but i don't like the way i have implemented it. I am sure that there will be some optimum way of doing the following task, so to avoid so many if statements. Thank you so much.
if any(idcabs==[1 2 3 4])
if any(idabs==[1 2 5 6 9 10 13 14])
idbeam1=1;
else
idbeam1=3;
end
elseif any(idcabs==[5 6 7 8])
if any(idabs==[1 2 5 6 9 10 13 14])
idbeam1=3;
else
idbeam1=1;
end
elseif any(idcabs==[9 10 11 12])
if any(idabs==[1 2 3 4 5 6 7 8])
idbeam1=2;
else
idbeam1=4;
end
elseif any(idcabs==[13 14 15 16])
if any(idabs==[1 2 3 4 5 6 7 8])
idbeam1=4;
else
idbeam1=2;
end
end

Accepted Answer

Walter Roberson
Walter Roberson on 9 Nov 2015
You should consider using ismember()
  2 Comments
Aftab Ahmed Khan
Aftab Ahmed Khan on 9 Nov 2015
Edited: Aftab Ahmed Khan on 9 Nov 2015
Hi Walter, even if a consider ismember(), i will still need those nested If statements. It will be just a change of functions from any() to ismemeber(). Do you mean something like this just for the first part.
Aftab Ahmed Khan
Aftab Ahmed Khan on 9 Nov 2015
id1=ismember(idcabs,C1)
id2=ismember(idabs,S1)
if ~isempty(id1) && ~isempty(id2)
idbeam1=1;
else
idbeam1=3;
end

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!