MATLAB嵌套多个输入函数

时间:2012-07-16 12:40:12

标签: matlab colon

给出多输入matlab函数

out=f(in1, in2) 

我想写第二个函数g,它生成f的输入,例如

[in1, in2]=g(in)

所以我可以打电话给:

out=f(g(in))

我尝试将g写为单个输出函数,它将in1和in2存储在单元格数组中,这样我就可以使用冒号运算符将g的输出提供给f:

in_c=g(in);
out=f(in_c{:})

但是我一直在寻找一个单线解决方案,在我阅读时似乎无法实现这种方式:

Is it possible to apply colon operator on an expression in MATLAB?

还有其他办法吗?

1 个答案:

答案 0 :(得分:0)

As discussed recently,这在Matlab中是不可能的。

但是,如果您不想重新编写函数g(x,y)以返回单元格数组,那么您仍然可以用两行来完成所有操作:

[in4f{1}, in4f{2}] = g(in);
out = f(in4f{:});

顺便说一下:除非你真的因为内存而受到伤害,否则通过避免临时变量来尝试强制一行语句并没有多大意义。当然,你可以使你的代码看起来像CrazyPerl,但从长远来看,你会很高兴增加可读性。