2017-01-18 5 views
0

у меня есть 8 х 8 данных ячейки и хочу скопировать из другой ячейки, которая имеет только 7 х 7.(Matlab) Копировать диапазон значений ячеек в другой диапазон ячеек

Например, первая ячейка выглядит

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

Некоторые примеры

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.

Смежные вопросы