我想使用条件或if函数替换向量的元素。
a = [10 20 60];
如果a <30 = 4否则a = 5
结果需要如下所示:
b = [4 4 5]
解决方案使用logical indexing
-
cond1 = a < 30
cond2 = a > 30
b = 4.*cond1 + 5.*(cond2) + a.*(~(cond1 | cond2))
简短说明: cond1
并cond2
根据IF-ELSE
条件形成逻辑数组,这些条件用于建立索引并形成的“标定”值的数字数组4 or 5
,同时保持30
。
单线版:如果您喜欢单线版,则可能会满足您的需求-
b = 4.*(a < 30) + 5.*(a > 30) + a.*(~(a > 30 | a < 30))
例子1
a =
10 20 60 30
b =
4 4 5 30
另一个相关的有趣问题-Matlab:使用逻辑索引删除IF-ELSE条件语句
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句