Hen*_*nry 1 arrays matlab vector
交织器:假设我们有向量,X= randi(1,N)我想将 的内容拆分X为两个新向量X1,X2并且 的第一个元素X是 的第一个元素X1, 的第一个元素X2是 的第二个元素X, 的第三个元素X是 的第二个元素X1的第四X个元素是X2...等的第二个元素,直到向量`X的最后一个元素。
我有以下想法
X1(1)=X(1);
X2(1)=X(2);
for i=1:length(X)
X1(i)= X(i+2);
end
for j=2:length (X)
X2(i)= X(i+2)
end
Run Code Online (Sandbox Code Playgroud)
我的问题是:我的方法正确吗?有没有更好的方法来做到这一点?
Deinterleaver
我也有相反的问题,所以基本上在这种情况下我有X1并且X2想要恢复X,我将如何有效地恢复X?
我认为这个问题中的术语是相反的。交错将合并两个向量交替它们的值:
x1 = 10:10:100;
x2 = 1:1:10;
x = [x1;x2];
x = x(:).';
Run Code Online (Sandbox Code Playgroud)
这与单行相同:
x = reshape([x1;x2],[],1).';
Run Code Online (Sandbox Code Playgroud)
去交错将分离交错的数据,正如大卫在评论中和汤姆在回答中已经建议的那样:
y1 = x(1:2:end);
y2 = x(2:2:end);
Run Code Online (Sandbox Code Playgroud)
但也可以通过许多其他方式完成,例如反转我们上面遵循的过程:
y = reshape(x,2,[]);
y1 = y(1,:);
y2 = y(2,:);
Run Code Online (Sandbox Code Playgroud)
验证:
isequal(x1,y1)
isequal(x2,y2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
877 次 |
| 最近记录: |