2013-03-20 4 views

Répondre

1

Faire une fonction comme celui-ci

function out = cat2(a, b) 

    diff = length(a) - length(b) 
    if diff > 0 
     b = [b, nan(1, diff)]; 
    else 
     a = [a, nan(1, -diff)]; 
    end 

    out = [a;b]; 

end 

(mais aussi ajouter un contrôle pour gérer des vecteurs de colonne trop)

cat2([1 2 3 4], [1 2]) 

ans = 

    1  2  3  4 
    1  2 NaN NaN 
3

Cela pourrait aider

a = [1 2 3 4]; 
b = [1 2]; 
c = a; 
c(2,1:length(b)) = b; 

c = 

1  2  3  4 
1  2  0  0 

puis, si vous plutôt avoir NaN que 0, vous pourriez faire ce que Dennis Jaheruddin suggère dans un commentaire ci-dessous.

+0

+1 mais aussi 'c (2,1: longueur (b)) = b;' pour le rendre 'automatisé'. – Dan

+0

Bon point Dan, je mettrai à jour ma réponse pour incorporer (c'est-à-dire voler) votre idée. –

+2

La solution «NaN» remplacera également les zéros dans les vecteurs d'origine, ce qui n'est probablement pas souhaitable. Je suggérerais 'c (2, longueur (b) +1: fin) = NaN' –

Questions connexes