0

データを使用して多次元配列を作成しようとしています。17x10x1024 の空のセル配列があります。

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 double]' を取得することです。

何か案は?

4

1 に答える 1

2

あなたが取得しようとしているものは、私にはあまり合理的ではないようです。なぜなら、ベクトルを操作したいセルに単一の値がたくさんあるからです。

私は3つのオプションを提案します:

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

これにより、1 つの列に名前が含まれるセル行列と、他の列に信号ベクトルが含まれるセルが得られます。

しかし実際には、セル配列に名前と信号を一緒に格納しないことをお勧めします。したがって、信号を含む 3D マトリックスが必要な場合は、名前を分けて作成してください。

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

これらはすべて単なるアイデアであり、十分な情報を提供していないため、試していません。

于 2013-10-27T12:46:24.690 に答える