2010-04-28 11 views

Odpowiedz

4

Mam funkcji, jak to w moim ścieżki:

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

Tak, że mogę następnie zadzwonić:

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

Byłoby również działać, jeśli chcesz większy region:

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

fajne rozwiązanie .. – yassin

6

Jest to możliwe przy użyciu anonimowych funkcje:

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

ans = 

    32  8 
    8  2 

>> f11(cov(M)) 

ans = 

    32 

Albo dla purystów, tutaj jest bez zmiennych pośrednich w ogóle:

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

ans = 

    32 
+0

Nicea rozwiązanie, ale w swojej feval rachunku rozważyć zmianę parametru na inną nazwą niż „M” dla jasności. – Geoff