当我想访问矩阵的特定元素时,我使用带括号的索引:
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);
错误:() - 索引必须出现在索引表达式的最后。
在这里,我想要一个通用语法,适用于任何计算,不一定涉及随机变量。
答案 0 :(得分:0)
您可能想查看FileExchange上的“功能编程构造”。
特别是文件paren.m可以满足您的需求。所以你会写
x = paren( cumsum(rand(10,4)), 10, 1 );
也许不如直接“()”符号那么优雅,但MATLAB中不支持您想要使用它的方式。