matlab中的多中频条件
运行以下代码时,Matlab中不会读取条件(1)和(3)。 我尽了最大的努力,但没有发现错误。任何帮助都将不胜感激matlab中的多中频条件,matlab,Matlab,运行以下代码时,Matlab中不会读取条件(1)和(3)。 我尽了最大的努力,但没有发现错误。任何帮助都将不胜感激 % inputs are a_s, p, t, a % a_s=single number % p,t,a are column vectors % output is P (also a column vector) if a_s<a<=a_s-180 if p<=180-t %------(1) P=p+t;
% inputs are a_s, p, t, a
% a_s=single number
% p,t,a are column vectors
% output is P (also a column vector)
if a_s<a<=a_s-180
if p<=180-t %------(1)
P=p+t;
elseif p>180-t %------(2)
P=p+t-180;
end
elseif a<=a_s | a_s-180<a
if p>=t %------(3)
P=p-t;
elseif p<t %------(4)
P=p-t+180;
end
end
%输入为a\u s,p,t,a
%a_s=单个数字
%p,t,a是列向量
%输出为P(也是一个列向量)
如果a_s尝试以下替换:
替换为:
if p<=180-t %------(1)
P=p+t;
elseif p>180-t %------(2)
P=p+t-180;
end
如果p180-t%-------(2)
P=P+t-180;
结束
为此:
P = p+t;
P(P<=180) = P(P<=180)-180;
P = p-t;
P(P<0) = P(P<0)+180;
P=P+t;
P(P这意味着什么?(1)看起来第一个if
表达式的计算结果永远不会为真。(2)由于a
是一个向量,您希望所有或任何元素都与条件相匹配吗?还是要单独检查每个元素?-----实际方程------如果a_%--谢谢您的回答。但这也产生了我在我的机器上得到的%相同的结果。%n我正在尝试更详细地编写方程如果问题可能在于if a,请记住,当您检查向量a
的a s
时,只有当a
的所有元素都大于a s
时,才会检查为真。如果任何一个元素为假,则不会执行以下语句。但对于a的情况,则代码为从第一个if开始,读取条件(2),然后直接进入条件(4)。在第一个if(1)和(2)之后,P有两个子条件,在elseif(3)和(4)之后,P又有两个子条件。
P = p-t;
P(P<0) = P(P<0)+180;