MATLAB级联函数

时间:2015-11-01 15:37:03

标签: matlab function concatenation

我有一个返回@(x) f(x)矩阵的函数3-by-3。我想定义另一个函数@(x) F(x),它返回3*n-by-3*nf(x)沿对角线重复n次,任意n

这可以通过数组(而不是函数)完成:

n = 5; 
A = repmat({magic(3)},[1,n]); 
B = blkdiag(A{:})

但是对于函数来说,由于需要传递参数,因此存在细微之处。我天真的尝试没有成功:

f=@(x) magic(3);

F=@(x) blkdiag(repmat({f(x)},[1,n]))
F=@(x) blkdiag({repmat({f(x)},[1,n])})
F=@(x) blkdiag(repmat({feval(@(xx) f(xx),x)},[1,n])) 

一般来说,是否有优雅的方法来连接/组合/重复一个函数?

0 个答案:

没有答案