2010-04-28 29 views
5

我有,给出了一个矩阵表达,我想访问一个元素,而无需创建一个临时变量,像这样cov(M)(1,1)。我该怎么做?MATLAB表达式列的索引

谢谢!

回答

4

我有这样的功能在我的路径:

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

这样我就可以拨打:

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

这也将工作,如果你想要一个更大的区域:

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

不错的解决方案.. – yassin 2010-04-28 14:11:58

6

有可能使用匿名函数:

>> 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 
+0

很好的解决方案,但在你的feval声明考虑改变参数不同的名称为清楚起见,“M”。 – Geoff 2010-04-28 14:07:31