2013-10-27 65 views
0

我正在尝试用数据创建多维数组。 我有一个17x10x1024空单元阵列:MATLAB:将矢量分配给多维单元阵列

C=cell(length(data(1,:)),10,1024); 

% length(data(1,:) = 17 

然后我计算(在while循环(17次))载体,其是1024x1:

value = data(:,i) + randn(size(t))*noise_out; 

现在我要分配的值这个矢量到阵列中,以这样的方式即:

'Name of Signal'     [] [] [] [] [] [] [] [] [] 
    'in1'    [1024x1 double] [] [] [] [] [] [] [] [] 
    'out1'    [1024x1 double] [] [] [] [] [] [] [] [] 
    'in2'    [1024x1 double] [] [] [] [] [] [] [] [] 
    'out2'    [1024x1 double] [] [] [] [] [] [] [] [] 
    'in3'    [1024x1 double] [] [] [] [] [] [] [] [] 
    'out3'    [1024x1 double] [] [] [] [] [] [] [] [] 
    'in4'    [1024x1 double] [] [] [] [] [] [] [] [] 
    'out4'    [1024x1 double] [] [] [] [] [] [] [] [] 
    'in5'    [1024x1 double] [] [] [] [] [] [] [] [] 
    'out5'    [1024x1 double] [] [] [] [] [] [] [] [] 
    'in6'    [1024x1 double] [] [] [] [] [] [] [] [] 
    'out6'    [1024x1 double] [] [] [] [] [] [] [] [] 
    'in7'    [1024x1 double] [] [] [] [] [] [] [] [] 
    'out7'    [1024x1 double] [] [] [] [] [] [] [] [] 
    'in8'    [1024x1 double] [] [] [] [] [] [] [] [] 
    'out8'    [1024x1 double] [] [] [] [] [] [] [] [] 

我使用下面的:

C(i,2,:) = {value}; 

% i is the number of loop from 2 to 17 

,但问题是,我实际上得到一个字符串'[1024x1双]',而不是矢量的实际值。

任何想法?

回答

2

你想要得到的东西似乎对我来说并不合理,因为你在单元格中有很多单值,而你更愿意使用矢量。

我提出三个选项:

C=cell(length(data(1,:)),10); 
C(i,2) = value; 

,让你在一列您的姓名和细胞对细胞矩阵与向量信号,在其他列

但实际上我建议不要将名称和信号一起存储在单元阵列中。因此,如果你想要一个三维矩阵与你的信号保持名称分开,并创建:

C = zeros(length(data(1,:)),10,1024); 
C(i,2,:) = value; 

或考虑使用结构;

signal(1).name = 'in1' 
signal(1).values = value 
signal(2).name = 'out1' 
signal(2).values = value2 

这些都只是想法,我还没有尝试过,因为你没有提供足够的信息。