给出多输入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?
还有其他办法吗?
答案 0 :(得分:0)
As discussed recently,这在Matlab中是不可能的。
但是,如果您不想重新编写函数g(x,y)
以返回单元格数组,那么您仍然可以用两行来完成所有操作:
[in4f{1}, in4f{2}] = g(in);
out = f(in4f{:});
顺便说一下:除非你真的因为内存而受到伤害,否则通过避免临时变量来尝试强制一行语句并没有多大意义。当然,你可以使你的代码看起来像CrazyPerl,但从长远来看,你会很高兴增加可读性。