有没有什么办法在自定义步骤中使用MATLAB中的for-loop?我想要做的是遍历所有小于给定数字的2的权力。在C等效回路++(例如)将是:For循环与MATLAB中的乘法步骤
for (int i = 1; i < 65; i *= 2)
注1:这是一种迭代的for循环最适合,所以我想不使用while循环。
注2:我实际上使用的是八度,而不是MATLAB。
有没有什么办法在自定义步骤中使用MATLAB中的for-loop?我想要做的是遍历所有小于给定数字的2的权力。在C等效回路++(例如)将是:For循环与MATLAB中的乘法步骤
for (int i = 1; i < 65; i *= 2)
注1:这是一种迭代的for循环最适合,所以我想不使用while循环。
注2:我实际上使用的是八度,而不是MATLAB。
也许你想沿着
for i=2.^[1:6]
disp(i)
end
线的东西,除非你将需要弄清楚指数的范围。这使用的事实是,因为 a_(i+1) = a_i*2
这可以被重写为a_i = 2^i
。
否则,你可以不喜欢以下
i=1;
while i<65
i=i*2;
disp(i);
end
可以遍历任何载体,所以你可以使用矢量操作来创建你的价值观的载体,你开始你的循环之前。在第一个100张平方数回路,例如,可以写像这样:
values_to_iterate = [1:100].^2;
for i = values_to_iterate
i
end
或者你可以循环遍历向量values_to_iterate
每个位置(这给出了相同的结果,但有如下益处i
跟踪你有多少次迭代完成的 - 如果你是从各个线圈依次写一个结果到输出向量),这是有用的:
values_to_iterate = [1:100].^2;
for i = 1:length(values_to_iterate)
values_to_iterate(i)
results_vector(i) = some_function(values_to_iterate(i));
end
更简洁,你可以写第一个例子是简单的:
for i = [1:100].^2
i
end
与C不同的是,从一个值到下一个值不一定是'规则'。 迭代的矢量可以是完全任意的:
for i = [10, -1000, 23.3, 5, inf]
i
end