2017-02-20 32 views
-2
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'語句的錯誤,特別是前兩個錯誤,但不是最後一個,錯誤消息是'IF中的Parce錯誤:使用可能是無效的MATLAB語法'。有誰知道我可以如何解決這個問題? 乾杯, 丹。Parce錯誤:用法可能是無效的MATLAB語法

+1

順便說一句,縮進4個空格以正確格式化您的代碼。僅使用小回路代碼的後退標記。我這樣做了,但我不想嘗試修復縮進的其餘部分,因爲我不知道Matlab,也不想搞亂任何東西。 – Carcigenicate

+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 
+0

謝謝你的幫助! –

+0

我試圖做出這些改變,可悲的是代碼仍然顯示相同的錯誤。它實際上需要我重新添加if語句第一行的分號。 –