jus*_*tik 2 matlab loops for-loop if-statement conditional-statements
在循环内有A(n,1),B(n,1)和以下条件
for i=1:m
if ( A(i, 1) > error )
B(i,1) = 0;
else
B(i,1) = exp (-A(i,1) / 100)
end
end
Run Code Online (Sandbox Code Playgroud)
如何在不使用任何循环的情况下重写此条件?有可能是这样的
if ( A(:, 1) > error )
B(:,1) = 0;
else
B(:,1) = exp (-A(:,1) / 100)
end
Run Code Online (Sandbox Code Playgroud)
使用逻辑索引:
idxs = (A > error);
B( idxs) = 0;
B(~idxs) = exp(-A(~idxs) / 100);
Run Code Online (Sandbox Code Playgroud)