2013-10-19 33 views
-1

我有一个数据:如何重新排列矩阵中的数据?

data=[1 2 3 4 5 6 7 8]; 

我需要一个新的数据矩阵(4×8),就像这样:

new_data =[ 1 2 0 0 0 0 0 0 
      0 0 3 4 0 0 0 0 
      0 0 0 0 5 6 0 0 
      0 0 0 0 0 0 7 8 ] 

如何做到这一点使用for循环?任何帮助?

回答

3

无需使用for循环

data = 1:8; 

newdata = [reshape(data,2,4); zeros(8,4)]; 
newdata = reshape(newdata(1:32), 8, 4)'; 

下面是不使用一个循环,如果你想让它

clear('newdata'); 

for ii = 1:4 
    index = 2*(ii-1)+1:2*ii; 
    newdata(ii,index) = data(index); 
end 
的解决方案