我想知道在matlab中是否可以执行以下语句?
10: 2to power(1,2,3):18
我想创建以下向量,并且需要一个动态增量步长,该步长为 2 的 (1,2,3) 次方。
a=[10,12,14,18]
我试过了
10:2.^[1,2,3]:18
和
10:2.^[1;2;3]:18
但是需要 2^1 作为增量步长。
最佳答案
不可以,MATLAB 中不能有动态增量值。
执行此操作的 MATLAB 方法是创建数组 2.^[1 2 3]
并将其添加到 10
并将其与 连接10
构建你的向量。
a = [10 10 + (2.^[1 2 3])]
% 10 12 14 18
如果您愿意,您可以编写一个函数来创建这些数组。
function out = pow2increment(start_value, end_value)
% Figure out how many powers of 2 we need for this range
upper_limit = floor(log2(end_value - start_value));
% Construct the array
out = [start_value, start_value + 2.^(1:upper_limit)];
end
或者作为匿名函数
pow2increment = @(a,b)[a, a + 2.^(1:floor(log2(b - a)))];
pow2increment(10, 18)
% 10 12 14 18
关于matlab - 在matlab中定义向量的动态增量步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39426728/