(Matlab)将单元格值的范围复制到另一个单元格范围

时间:2017-01-18 05:28:11

标签: matlab

我有一个8 x 8的单元格数据,并希望从另一个只有7 x 7的单元格中复制。

例如,第一个单元格看起来像

  0 0 0 0 0 0 0 0
  0 0 0 0 0 0 0 0
  0 0 0 0 0 0 0 0
  0 0 0 0 0 0 0 0
  0 0 0 0 0 0 0 0
  0 0 0 0 0 0 0 0
  0 0 0 0 0 0 0 0
  0 0 0 0 0 0 0 0

,第二个单元格数据

  1 0 0 0 0 0 0 
  0 0 0 0 0 0 0 
  0 2 0 0 0 0 0
  0 0 0 3 0 0 0 
  0 0 0 0 0 0 0 
  0 0 0 0 0 5 0 
  0 0 0 0 0 0 0 

那么如何将Matlab单元格数据结构复制到另一个单元格区域?

它有效,但我觉得有更好的方法。

for i = 1:7 
    for j = 1:7
        result_matrix{i,j} = mat_trans_cell{i,j};
    end
end

我尝试过如下但是失败了。

result_matrix{1:7,1:7} = test{1:7,1:7}

1 个答案:

答案 0 :(得分:1)

一些例子

a = cell(5,5)  % create first cell array
a{1,1} = 1     % put some numbers
a{2,2} = 3
a{1,3} = 0
b = cell(3,3)  % create second cell array

b(1:3,1:3) = a(1:3,1:3) % the way you are interesting in
b(3,:) = a(1,1:3)

a = 

[1]     []    [0]    []    []
 []    [3]     []    []    []
 []     []     []    []    []
 []     []     []    []    []
 []     []     []    []    []
b = 

[1]     []    [0]
 []    [3]     []
[1]     []    [0]

所以在你的情况下你可以做到

result_matrix(1:7,1:7) = test(1:7,1:7)

主要思想是感受单元数组{}()之间的区别。 您可以找到有关它的有用信息here