基本上我有这样的数组:
[1 2 3 4 5 6]
我想要这样的数组:
[1 0 2 0 3 0 4 0 5 0 6]
所以它L-1
在数组中为零,其中L
是零填充之前数组中所有值的数量。
有人知道如何在 Matlab 中解决它吗?
基本上我有这样的数组:
[1 2 3 4 5 6]
我想要这样的数组:
[1 0 2 0 3 0 4 0 5 0 6]
所以它L-1
在数组中为零,其中L
是零填充之前数组中所有值的数量。
有人知道如何在 Matlab 中解决它吗?
你可以试试这个:
a = [1 2 3 4 5 6];
b = zeros(1, 2 * length(a) - 1);
b(1:2:end) = a;
这导致
b =
1 0 2 0 3 0 4 0 5 0 6
Dan在评论中建议了一个较短的版本:
b(1:2:2 * length(a) - 1) = a;
如果您有信号处理工具箱,则可以使用上采样功能:
>> x = 1:5;
>> upsample(x, 2)
ans =
1 0 2 0 3 0 4 0 5 0
通过reshape
ing:
a = [1 2 3 4 5 6];
b = a; % make copy
b(2,:) = 0; % add zeros
b = b(:)'; %'
b(end) = []; % discard last zero
也许不是最优雅/最有效的解决方案,但以下应该可行:
x = 1:6;
y = zeros(1,2*length(x)-1);
for k=1:length(x)
y(2*k-1)=x(k);
end
阿尔诺
另一种方法是:
a=1:6;
b=zeros(1,2*length(a)-1);
j=1;
for i=1:2:length(b)
b(i)=a(j);
j=j+1;
end