2016-11-15 18 views
0

当我要访问一个矩阵的特定元素,我使用索引用括号:如何索引临时矩阵?

m = calc_stuff(...); 
x = m(index1, index2); 

不过,我常常想这样做,在一行代码,就像这样:

x = calc_stuff(...)(index1, index2); 

我该如何表达它?

一个具体的例子:

m = cumsum(rand(10,4)); 
x = m(10, 1); 

上述脚本计算随机变量的一些总和,然后我举一个例子值出来的结果矩阵的。

我怎么能把它写成一行?以下不工作:

x = cumsum(rand(10,4))(10, 1); 

Error:()-indexing must appear last in an index expression.

在这里,我想一般的语法,这对于任何计算是适用的,但不一定涉及随机变量。

+0

Octave允许这样做,但在Matlab中需要使用'subsref'。检查@Sardar_Usama链接以获得完整的解释 –

回答

0

您可能想查看FileExchange上的“函数式编程构造”。

特别是文件paren.m做你所需要的。所以,你会写

x = paren(cumsum(rand(10,4)), 10, 1); 

也许还不如直接的优雅“()”符号,但没有在MATLAB中,你想用它的方式支持。