MATLAB表达式列索引

yas*_*sin 5 indexing matlab

我有一个表达式给出一个矩阵,我想访问一个元素,而不创建一个临时变量,像这样cov(M)(1,1).我该怎么做?

谢谢!

Jas*_*n S 6

可以使用匿名函数:

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

ans =

    32     8
     8     2

>> f11(cov(M))

ans =

    32
Run Code Online (Sandbox Code Playgroud)

或者对于纯粹主义者来说,这里没有任何中间变量:

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

ans =

    32
Run Code Online (Sandbox Code Playgroud)


Geo*_*off 4

我的路径中有一个这样的函数:

getRegion = @(matrix, rows, cols) matrix(rows,cols);
Run Code Online (Sandbox Code Playgroud)

这样我就可以调用:

getRegion(cov(M), 1, 1);
Run Code Online (Sandbox Code Playgroud)

如果您想要更大的区域,它也可以工作:

getRegion(cov(M), 1:2, 2);
Run Code Online (Sandbox Code Playgroud)