Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
matlab中的多中频条件_Matlab - Fatal编程技术网

matlab中的多中频条件

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;

运行以下代码时,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;
     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;