基本上我要做的是在n = 4,8,16,32,...,512时让我的for循环运行迭代。我之前试过在for循环中乘以迭代变量,但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
答案 0 :(得分: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] - 和那么你只需迭代这个向量的值。