2010-04-28 10 views

Respuesta

4

Tengo una función como esta en mi camino:

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

Así que a continuación se puede llamar:

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

También trabajaría si quería una región más grande:

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

buena solución .. – yassin

6

Es posible utilizar funciones anónimas:

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

ans = 

    32  8 
    8  2 

>> f11(cov(M)) 

ans = 

    32 

O para los puristas, aquí se encuentra, sin variables intermedias en absoluto:

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

ans = 

    32 
+0

buena solución, pero en su estado de cuenta feval pensar en cambiar el parámetro a un nombre diferente a 'M' para mayor claridad. – Geoff