gpt4 book ai didi

arrays - Matlab:使用逻辑索引删除 IF-ELSE 条件语句

转载 作者:行者123 更新时间:2023-12-02 21:27:36 24 4
gpt4 key购买 nike

我不明白在不使用 if 语句或循环的情况下如何做这个问题。

n = input ('What is the vector length? ');
y = rand(n,1);
x = rand(n,1);
p = zeros(n,1);
for i=1:n
if (y(i) > 0.5 && x(i) < 0.5) || y(i) < 0.2
p(i) = y(i) + x(i);
else
p(i) = (y(i)*x(i))^2
end
end

a) 重新实现仅使用向量运算和逻辑索引的代码(即,您不能使用任何循环或分支)。

最佳答案

这样您就不需要初始化p -

cond1 = (y > 0.5 & x < 0.5) | y < 0.2;
p = cond1.*(y + x) + ~cond1.*((y.*x).^2)

关于arrays - Matlab:使用逻辑索引删除 IF-ELSE 条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23133948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com