Индексирование столбцов выражения MATLAB - PullRequest
5 голосов
/ 28 апреля 2010

У меня есть выражение, которое дает матрицу, и я хочу получить доступ к элементу без создания временной переменной, что-то вроде этого cov(M)(1,1). Как я могу это сделать?

Спасибо! * * 1004

Ответы [ 2 ]

6 голосов
/ 28 апреля 2010

Возможно использование анонимных функций:

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

ans =

    32     8
     8     2

>> f11(cov(M))

ans =

    32

Или для пуристов, здесь вообще нет промежуточных переменных:

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

ans =

    32
4 голосов
/ 28 апреля 2010

У меня есть такая функция на моем пути:

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

Так что я могу позвонить:

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

Это также будет работать, если вы хотите больший регион:

getRegion(cov(M), 1:2, 2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...