2016-12-04 295 views
2

enter image description here計算總和

我需要計算這一系列

我需要輸出這種方式的總和:

If n = 3; 

x = function_name(n) 

我需要得到x = 11.

If n = 5; 

x = function_name(n) 

我需要得到x = 45

我相信我需要一個for-loop來迭代;但是我發現很難迭代增量值本身。

回答

0
inc=2; 
sum=1; 
next=1; 

n=input('what is n?\n'); 

for i=2:n 
    next=next+inc; 
    sum=sum+next; 
    inc=inc+2; 
end 

disp('sum is '); 
disp(sum); 
+0

我想到了另一種方式。 – user3812887

1

我想你想的差異cumsumd的數字的sum

d = 2; 
n = 5; 

s = d:d:d*(n-1) 
cs = cumsum([1 s]) 
scs = sum(cs) 

%// or as anonymous function 

scsh = @(n,d) sum(cumsum([1 d:d:d*(n-1)])) 

scs = 

    45 

scsh(5,2) = 

    45 

沒有必要爲一個循環!

+0

我需要的總和(只)的數字在圖的第2列,即 – user3812887

+0

系列如果n = 5;我需要有1 + 3 + 7 + 13 + 21 = 45; Matlab函數只能使用一個輸入;那就是n。 – user3812887

+0

如果我提供n = 3的輸入,那麼Matlab需要取我11作爲輸出;我需要開發函數內部的系列,然後生成總和 – user3812887

0
function Total = abc(n) 

nth_term=1; 
Total = 1 ; 


    for d = 2:2:(2*(n-1)) 
     nth_term = nth_term + d;  
     Total =Total + nth_term;  

    end 

end 
+0

這也適用;無論如何感謝你們兩個,尤其是@netizen – user3812887