How do I break a complex loop with a multiple-if structure?

I am writing a code that has the following form:
for i = 1:size(interiorcolumns,1)
if interiorcolumns{i}(6) == heightsmatrix(1)
condition 1
elseif interiorcolumns{i}(6) == heightsmatrix(2)
condition 2
elseif interiorcolumns{i}(6) == heightsmatrix(3)
condition 3
elseif interiorcolumns{i}(6) == heightsmatrix(4)
condition 4
elseif interiorcolumns{i}(6) == heightsmatrix(5)
condition 5
else
condition 6
end
end
When the heightsmatrix, is smaller than six row elements, I want the redundant if statements not to be taken into account. How can I do that?

 採用された回答

Matt J
Matt J 2017 年 10 月 18 日
編集済み: Matt J 2017 年 10 月 18 日

1 投票

Another way
for i = 1:size(interiorcolumns,1)
switch find( interiorcolumns{i}(6) == heightsmatrix, 1 )
case 1
condition 1
case 2
condition 2
case 3
condition 3
case 4
condition 4
case 5
condition 5
otherwise
condition 6
end
end

その他の回答 (1 件)

Matt J
Matt J 2017 年 10 月 18 日
編集済み: Matt J 2017 年 10 月 18 日

1 投票

I would just fill the missing elements with NaNs
heightsmatrix(end+1:6)=nan;

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

製品

質問済み:

2017 年 10 月 18 日

編集済み:

2017 年 10 月 18 日

Community Treasure Hunt

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

Start Hunting!

Translated by