2010-04-28 8 views

Répondre

4

J'ai une fonction comme ça dans mon chemin:

getRegion = @(matrix, rows, cols) matrix(rows,cols); 

alors que je peux alors appeler:

getRegion(cov(M), 1, 1); 

Il fonctionnerait également si vous vouliez une région plus vaste:

getRegion(cov(M), 1:2, 2); 
+0

belle solution .. – yassin

6

Il est possible d'utiliser les fonctions anonymes:

>> f11 = @(M) M(1,1); 
>> M = [1 2; 9 4]; 
>> cov(M) 

ans = 

    32  8 
    8  2 

>> f11(cov(M)) 

ans = 

    32 

Ou pour les puristes, ici il est sans variables intermédiaires du tout:

>> feval(@(M) M(1,1), cov(M)) 

ans = 

    32 
+0

solution Nice, mais dans votre déclaration feval envisager de modifier le paramètre à un nom différent de « M » pour plus de clarté. – Geoff

Questions connexes