Naw*_*war 9 matlab if-statement
H0 is an array [1:10]
H is a single number [5]
Run Code Online (Sandbox Code Playgroud)
如何将H0中的每个元素与单个数字H进行比较
if H0>H
do something,
else do another thing,
end
Run Code Online (Sandbox Code Playgroud)
Matlab总是做另一件事.
if需要以下语句来评估标量true/false.如果语句是数组,则行为等同于将其包装all(..).
如果您的比较结果是逻辑数组,例如
H0 = 1:10;
H = 5;
test = H0>H;
Run Code Online (Sandbox Code Playgroud)
您有两种方法可以test通过if-statement:
(1)可以聚合的输出test,比如你希望在将要执行的,如果从句any或all以这些元素的test是真实的,如
if any(test)
do something
end
Run Code Online (Sandbox Code Playgroud)
(2)你遍历元素test,并做出相应的反应
for ii = 1:length(test)
if test(ii)
do something
end
end
Run Code Online (Sandbox Code Playgroud)
注意,可以通过使用逻辑向量test作为索引来向量化该操作.
编辑
如果你想要的话P(i)=H0(i)^3 if H0(i)<H,如果你想要,或者P(i)=H0(i)^2你只是写作
P = H0 .^ (H0<H + 2)
Run Code Online (Sandbox Code Playgroud)