2016-03-14 85 views
1

基本上我想要做的是讓我的for循環運行迭代時,當n = 4,8,16,32,...,512。我之前嘗試在for循環中將我的迭代變量乘以,但MatLab不會允許它。我試圖尋找生成指數間隔的矢量來使用,但沒有命令。這似乎是一個非常簡單的任務,我可以在它之前使用一個條件語句,但這看起來像是糟糕的編碼。matlab循環迭代的間距

是否有一個簡單而優雅的方式來設置我的循環條件?

%% Analysis - Trapezoidal Rule 


for n = 4:k:512 
h = (b-a)/n; 
changing_a = a+h; 
for j = 1:n-1 
    sum = function_q4_a(changing_a); 
    changing_a = changing_a + h; 
end 

integral_value = ((b-a)/(2*n)) * (function_q4_a(a) + 2*sum + function_q4_a(changing_a)); 
disp('Current n = '); 
disp(n); 
disp('Integral value is: '); 
disp(integral_value); 

k = k*2;end 

回答

4

可以簡單地做類似

for n = 2.^(2:9) 
    % Some code here 
end 

爲了更精確,

2.^(2:9) 

建立一個向量[2^2,2^3,2^4,2^5,2^6,2^7,2^8,2^9] - 使用。^ element-wise運算符 - 然後您只需遍歷此矢量的值。