如何拆分矩阵中的元素

时间:2013-04-02 12:27:09

标签: matlab

我有一个矩阵A

 1     1     0     0
 0     1     0     0
 1     0     0     1
 0     0     1     0
 0     0     0     0
 0     1     1     1
 1     1     0     0
 1     0     0     0
 0     0     0     1

如果d = [1 2 3],

for i=2:length(d)
  d(i) = d(i) + d(i-1); %d=[1 3 6]
end

然后使用,

d = [0, ceil((d./d(end))*length(x))]; %d=[2 5 9]
disp('The resultant split up is:')
for i=2:length(d)
  disp(x((d(i-1)+1):d(i)));
end

输出必须是, 分手是: 第1次拆分 - >

          1     1     0     0    %first 2 rows in matrix A
          0     1     0     0

第二次分手 - >

          1     0     0     1    %next 3 rows
          0     0     1     0
          0     0     0     0

第3次分手 - >

          0     1     1     1    %next 4 rows
          1     1     0     0
          1     0     0     0
          0     0     0     1

1 个答案:

答案 0 :(得分:2)

如果我理解你的问题,那么你需要mat2cell:这是一个简短的例子:

%// Bits and hops array
bits = '10001100';
hops = [3 2 3];

A = mat2cell(bits(:)', 1, hops)

结果是字符串的单元格数组:

A = 
    '100'    '01'    '100'

此方法也适用于数字数组(例如 bits = [1 0 0 0 1 1 0 0])。