2017-10-11 3 views
0

J'ai une table:Développer les variables de table dans 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); 

Maintenant, j'ai une autre liste d'ID:

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

Et je veux élargir ma table de telle sorte que, sur les colonnes où je avoir des données dans Ta Je mets les valeurs de Ta, et les cellules sur lesquelles je n'ai pas de données, je reçois NaN.

Comment puis-je développer le VariableNames de ma table en gardant les valeurs si nécessaire?

+0

Ceci est une copie de votre propre édition de votre [question précédente] (https://stackoverflow.com/q/46682751/3978545) – Wolfie

+0

Pas tout à fait, comme je suis ici explicitement demander comment créer une nouvelle table qui se développe seulement les colonnes. Je ne parle pas de la synchronisation de la série à temps. – JohnAndrews

Répondre

1

Nous pouvons le faire de cette façon: d'abord, vous devez créer la table des nouveaux ID. Et puis vous pouvez former sur des tables comme des tableaux habituels. Exemple:

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 

Créer nouvelle table:

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 

Pour développer première table, vous devez utiliser l'indexation maintenant:

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

Donc, maintenant tout ce que vous devez faire est de créer algorithme choisir les tables de données actuelles en utilisant votre vecteur d'identification.