在matlab中使用条件/if替换矢量元素

在matlab中使用条件/if替换矢量元素,matlab,vector,replace,conditional-statements,Matlab,Vector,Replace,Conditional Statements,我想用条件或if函数替换向量的元素 a=[102060] 如果a=30)=5一次更正:最后一行应“大于或等于”:b(b>=30)=5

我想用条件或if函数替换向量的元素

a=[102060]

如果a<30=4,则a=5

结果需要如下所示:


b=[4 4 5]

使用
逻辑索引的解决方案

cond1 = a < 30
cond2 = a > 30
b = 4.*cond1 + 5.*(cond2) + a.*(~(cond1 | cond2))
示例#1

a =
    10    20    60    30
b =
     4     4     5    30

另一个相关的有趣问题--

使用
逻辑索引的解决方案--

cond1 = a < 30
cond2 = a > 30
b = 4.*cond1 + 5.*(cond2) + a.*(~(cond1 | cond2))
示例#1

a =
    10    20    60    30
b =
     4     4     5    30
另一个相关的有趣问题-

另一个版本使用:

a=[102060];
b=a;
b(b<30)=4;
b(b>=30)=5;
另一个版本使用:

a=[102060];
b=a;
b(b<30)=4;
b(b>=30)=5;

非常感谢,这正是我想要的,正如你建议的那样,我还将研究逻辑索引。Regards@Crysthius令人惊叹的!很高兴它对你有用。查看
逻辑索引
,它是一个强大的工具!在解决方案中添加了一个链接。非常感谢您的帮助。非常感谢,这正是我想要的,正如你所建议的,我还将研究逻辑索引。Regards@Crysthius令人惊叹的!很高兴它对你有用。查看
逻辑索引
,它是一个强大的工具!在解决方案中添加了一个链接。非常感谢您的帮助。善良的Regardsbtw你还没有指定你想为数字30做什么。嗨,丹,我道歉,我声明了第二部分如果我的if语句错误,我会编辑它。感谢您将此标记为副本,但我想指出,我更喜欢@Divakar-answer。不过,我想在我编辑完我的问题后,他可能不得不修改他的答案。给您带来的不便,我深表歉意。善良的Regardsbtw你还没有指定你想为数字30做什么。嗨,丹,我道歉,我声明了第二部分如果我的if语句错误,我会编辑它。感谢您将此标记为副本,但我想指出,我更喜欢@Divakar-answer。不过,我想在我编辑完我的问题后,他可能不得不修改他的答案。给您带来的不便,我深表歉意。种类修正:最后一行应为“大于或等于”:
b(b>=30)=5一次更正:最后一行应“大于或等于”:
b(b>=30)=5