如何替换包含if语句的for循环?

12次浏览(最近30天)
gsourop
gsourop 2021年2月1日
编辑: 明星黾 2021年2月1日
亲爱的每个人,
我有两个随机的向量
A = -5 + (5+5)*rand(10,1);
B = -5 + (5+5)*rand(10,1);
根据每一对的符号,我想创建第三个向量('C'),如果a (I)*B(I)>0和0,则它将得到B的各自值,否则。有没有比使用for循环更好的方法来使用它,比如:
i = 1:10
如果(我)* B (i) > 0
C (i) = B(我);
其他的
C (i) = 0;
结束
结束
不创建第三个向量('C')并覆盖B的解决方案也很受欢迎,例如
i = 1:10
如果(我)* B (i) < 0
B (i) = 0;
结束
结束
提前谢谢你!

接受的答案

明星黾
明星黾 2021年2月1日
编辑:明星黾 2021年2月1日
其中一个应该做你想做的:
A = -5 + (5+5)*rand(10,1);
B = -5 + (5+5)*rand(10,1);
LogicalReference = (a * B) > 0;%逻辑向量
DesiredResult = LogicalReference。* B;其中一个在这里工作

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!