精简版
如何concatMap
在 MATLAB 中进行操作?我正在尝试从一系列更小、不同大小的向量中构建一个向量。我知道我可以做到:
result = [];
for i=1:N
result = [result nextPart(i)];
end
但这会严重影响速度,必须有更聪明的方法concatMap
。
长版
我正在尝试编写一个返回块的对角线的 MATLAB 函数。例如,如果您有块:
1 2 4
3 5 7
6 8 9
然后counterDiagonals(block)
应该返回[1 2 3 4 5 6 7 8 9]
。
我有一个函数可以找到一个块的单个对角线。即counterDiagonal(x, 3)
会回来[4 5 6]
。
因此,counterDiagonals
应该像concatMap counterDiagonal(x, i) (1:N)
where N
is一样简单(2*length(block)-1)
。如何在 MATLAB 中以有效的方式做到这一点?