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!