matlab中mapshow,函数式编程 - MATLAB中的Map函数?

函数式编程 - MATLAB中的Map函数?

我对MATLAB没有地图功能感到有些惊讶,所以我自己一起攻击了一个,因为它是我无法生存的东西。 那里有更好的版本吗? 有没有一个有点标准的MATLAB函数式编程库我缺少?

function results = map(f,list)

% why doesn't MATLAB have a Map function?

results = zeros(1,length(list));

for k = 1:length(list)

results(1,k) = f(list(k));

end

end

用法是例如

map( @(x)x^2,1:10)

7个解决方案

129 votes

简短回答:内置函数mean完全符合您的mean函数对数值数组的作用:

>> y = arrayfun(@(x) x^2, 1:10)

y =

1 4 9 16 25 36 49 64 81 100

还有两个其他类似行为的内置函数:mean(对单元格数组元素进行操作)和mean(对结构的每个字段进行操作)。

但是,如果您利用向量化,特别是使用逐元素算术运算符,则通常不需要这些函数。 对于您给出的示例,矢量化解决方案将是:

>> x = 1:10;

>> y = x.^2

y =

1 4 9 16 25 36 49 64 81 100

一些操作将自动跨元素操作(例如向向

你可能感兴趣的:(matlab中mapshow)