IF处的Parce错误:用法可能是无效的MATLAB语法

时间:2017-02-20 19:28:15

标签: matlab

function [a] = Int_Force(x,x1,x2,u1,u2,rRep,rAli,rAtt)
r = x1-x2;
v = u1-u2;
if
    ((0 <= r) && (r < rRep));
    g = -1;
end 
if
    ((rRep <= r) && (r < rAli));
    g = 0;
end 
if
    (rAli <= r) && (r <= rAtt));
    g = 1;    
end    
a = (1/x-1)*Sum(g*r/norm(r)) + (1-mod(g)*(v/norm(v)));
end

您好,对不起我今年是Matlab的新手,这是我第一次使用本网站,如果我不清楚,请道歉。我试图根据运动矢量之间的相互作用力创建一个函数。我的'if'语句遇到错误,特别是前2个而不是最后一个,错误消息说'在IF处出现Parce错误:用法可能是无效的MATLAB语法'。有谁知道我怎么解决这个问题? 干杯, 丹。

1 个答案:

答案 0 :(得分:0)

在if语句之后摆脱半冒号。您可以查看有效的if语句语法here

function [a] = Int_Force(x,x1,x2,u1,u2,rRep,rAli,rAtt)
    r = x1-x2;
    v = u1-u2;
    if (0 <= r) && (r < rRep)
       g = -1;
    end 
    if (rRep <= r) && (r < rAli)
        g = 0;
    end 
    if (rAli <= r) && (r <= rAtt)
        g = 1;    
    end    
a = (1/x-1)*Sum(g*r/norm(r)) + (1-mod(g)*(v/norm(v)));
end