MATLAB:将函数应用于向量中的每n个项

时间:2011-12-22 03:51:01

标签: matlab

这个相关的问题How can I apply a function to every row/column of a matrix in MATLAB?似乎表明一种方法是使用num2cell,我有点想远离它。

这就是我想要做的。我有一个三角形网格的索引列表,索引索引顶点列表。

我想在前3个索引上运行func(a,b,c),然后在接下来的三个索引上运行,依此类推。

所以我可以reshape(idxs,3,[])所以现在我将数据作为列向量输入三元组。但是arrayfun没有做我想做的事。

寻找类似于柱形图操作符的内容。

1 个答案:

答案 0 :(得分:2)

首先,如果需要,让你的func正确地向量化,使得参数可以是相等长度的列表:

vec_func = @(a,b,c)(arrayfun(@func,a,b,c))

然后,您可以直接访问idxs的每个第三个元素:

vec_func( idxs(1:3:end), idxs(2:3:end), idxs(3:3:end) )