请考虑一下,
data=1:64; % sample data points
现在这个数据可以循环移位1个单位(比如右移),以获得64个移位的数据序列。
这个1D矩阵如何在Matlab中循环移位以获得最终的64X64矩阵?
3 个答案:
答案 0 :(得分:3)
result = toeplitz([1,64:-1:2],1:64)
答案 1 :(得分:1)
data=1:64;
data1=ones(64);
for i=1:64
data1(i,:)=circshift(data,[1 i]);
end
答案 2 :(得分:1)
对于任意data
:使用mod
进行循环移位,使用bsxfun
生成无循环的所有轮班:
result = data(mod(bsxfun(@plus, (0:numel(data)-1).', 0:numel(data)-1), numel(data))+1);