如何将数组与matlab中if语句的数字进行比较

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总是做另一件事.

Jon*_*nas 8

if需要以下语句来评估标量true/false.如果语句是数组,则行为等同于将其包装all(..).

如果您的比较结果是逻辑数组,例如

H0  = 1:10;
H   = 5;
test = H0>H;
Run Code Online (Sandbox Code Playgroud)

您有两种方法可以test通过if-statement:

(1)可以聚合的输出test,比如你希望在将要执行的,如果从句anyall以这些元素的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)