2017-10-11 2 views
0

でテーブル変数を展開し、私はテーブルを持っている:は、MATLAB

Values = [2.1 2.4 2.5 2.6; ... 
      4.1 4.4 4.5 4.6; ... 
      6.1 6.4 6.5 6.6]; 

ID  = {'x1', 'x4', 'x5', 'x6'}; 

Ta = array2table(Values,'VariablesNames', ID); 

は今、私はIDの別のリストがあります:

ID  = {'x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7'}; 

をそして私は、そのような列上のどこに、というのが私のテーブルを展開したいですTaのデータがありますTaの値を入れ、データがないセルはNaNになります。

私のテーブルのVariableNamesを拡張するにはどうすればよいですか?

+0

これはあなたの[前の質問](https://stackoverflow.com/q/46682751/3978545) – Wolfie

+0

のあなた自身の編集の複製です。ここで私はここで明示的に拡張する新しいテーブルを作成する方法を尋ねるので列のみ。私は時系列の同期を言及していない。 – JohnAndrews

答えて

1

私たちは次のようにします: まず、新しいIDのテーブルを作成する必要があります。 そして、通常の配列としてテーブルにフォームを作成できます。 例:

x1 = [1; 2; 3; 4;] 
x2 = [1;1;1;1] 
x4 = [10;10;10;10] 
T = table(x1,x2,x4) 

T = 

    x1 x2 x4 
    __ __ __ 

    1  1  10 
    2  1  10 
    3  1  10 
    4  1  10 

新しいテーブルを作成します。

x3 = [123;13;13;123] 
x5 = [0;0;0;0] 
T1 = table(x3,x5) 

T1 = 

    x3  x5 
    ___ __ 

    123 0 
    13 0 
    13 0 
    123 0 

あなたは今、インデックスを使用する必要が最初の表展開するには:今、あなたがする必要があるすべてのアルゴリズムを作成されているので、

T = [T(:,1:2) T1(:,1) T(:,3) T1(:,2)] 

をあなたのIDベクトルを使ってデータの現在のテーブルを選択する。