2015-05-23 2 views

ответ

1

Лучший способ: Google больше о Matlab's cell array

Другой способ : вы можете создать матрицу 3D (n-by-m-by-3), то есть: m = zeros(n,m,3)

+0

спасибо. Но если я использую 'm = zeros (n, m, 3),' 'm (1,1)' даст мне 0 вместо (0 0 0), чего я действительно хотел. Благодарю. – Hong

+0

, тогда вы должны использовать массив ячеек. С трюком 3D у вас есть доступ к m (i, j, 1) ... m (i, j, 3) – scmg

+0

, чтобы отобразить весь (0,0,0), тогда вы должны иметь 3-й индекс, используя Matlab's векторизация: 'm (i, j,:)' – scmg

1

это то, что вы имеете в виду? использовать встроенный в функциональных нулей

Пример

а = нули (N, М, Р)

Р = 3

1

Вы можете использовать mat2cell

, но я бы рекомендовал использовать 3D-матрицу, как и другие ответы говорит

m = 5; 
n = 4; 
A = randi(50,n,m*3); 
out = mat2cell(A,ones(n,1),repmat(3,m,1)); 

Выход:

>> out 

out = 

[1x3 double] [1x3 double] [1x3 double] [1x3 double] 
[1x3 double] [1x3 double] [1x3 double] [1x3 double] 
[1x3 double] [1x3 double] [1x3 double] [1x3 double] 
[1x3 double] [1x3 double] [1x3 double] [1x3 double] 
[1x3 double] [1x3 double] [1x3 double] [1x3 double] 

Вы можете получить доступ к каждому элементу с {} так:

>> out{1,1} 

ans = 

6 41 13 

Для создания пустых ячеек,

>> out = cell(m,n) 

out = 

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