MATLAB中出现|| 和 && 运算符的操作数必须能够转换为逻辑标量值以及MATLAB中if语句中定义的变量不能使用的问题
根据网上的解决方案:||和&&为值运算, |与&为向量运算,将||改为|,将&改为&
但是该完之后出现if语句中定义的变量不能使用的问题:代码如下
f=150:1350/34:1500;
hb=200;
hm=3;
if f>=150&f<=200
Ch=8.29*(log10(1.54hm)).^2-1.1;
else if f>200&f<=1500
Ch=3.2(log10(11.75*hm))^2-4.97;
end
end
发现原因是f是非标量,而和f比较的值是标量,不能比较
具体解决办法:
f=150:1350/34:1500;
hb=200;
hm=3;
Ch=(f>=150&f<=200).(8.29(log10(1.54hm)).^2-1.1)+(f>200&f<=1500).(3.2*
(log10(11.75hm))^2-4.97);
注意是(f>=150&f<=200)点乘(8.29(log10(1.54*hm)).^2-1.1)*
编辑器有点问题
但是最后发现变量又可以用了:尴尬(只是会有警告)