Problem with Nested if statements

6 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Walter Roberson
Walter Roberson il 9 Nov 2015
You should consider using ismember()
  2 Commenti
Aftab Ahmed Khan
Aftab Ahmed Khan il 9 Nov 2015
Modificato: Aftab Ahmed Khan il 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 il 9 Nov 2015
id1=ismember(idcabs,C1)
id2=ismember(idabs,S1)
if ~isempty(id1) && ~isempty(id2)
idbeam1=1;
else
idbeam1=3;
end

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by