2
我想知道有無論如何在matlab中做下面的語句?動態增量步驟在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中定義一個向量
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中是否有類似的東西。 – user6276336
@ user6276336更新更加明確。沒有辦法,但我提供了兩種可以爲您創建這些類型的功能。 – Suever