Being more concise with an IF statement
1 回表示 (過去 30 日間)
古いコメントを表示
Hello,
Could someone tell me if there's a more concise way (I'm sure there is) of implementing the following:
if CN(count6,:) == 2
CN2(i,:) = bond_atom;
CN2(all(CN2==0,2),:)=[];
elseif CN(count6,:) == 3
CN3(i,:) = bond_atom;
CN3(all(CN3==0,2),:)=[];
elseif CN(count6,:) == 4
CN4(i,:) = bond_atom;
CN4(all(CN4==0,2),:)=[];
As you can see, I am creating matrices (CN2, CN3, CN4 etc...) using an IF criterion. However the criterion could be anything from 2 to ~20. So I wonder if I can summarise all the if's and elseifs in just a few lines, instead of having to repeat myself as I am doing here.
Kind regards,
Tom
0 件のコメント
採用された回答
Iain
2014 年 2 月 12 日
編集済み: Iain
2014 年 2 月 12 日
I'm assuming that CN only has one column.
number = CN(count6);
temp(1,:) = bond_atom;
temp(all(temp==0,2),:) = [];
CNoutput{number} = temp;
Replace CN4 with CNoutput{4}, etc.
5 件のコメント
Iain
2014 年 2 月 12 日
You're right tehre is a subtlety that I'd assumed out of existence.
number = CN(count6);
CNoutput{number}(i,:) = bond_atom;
CNoutput{number}(all(CNoutput{number}==0,2),:) = [];
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Performance and Memory についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!