如何在Matlab中使用匿名函数过滤数组?

时间:2011-03-09 19:05:01

标签: matlab

我想编写一个过滤数组的函数,最好是匿名函数。用语言很难说,但就像这样:

f = @(x) { if (x > 1) x+1 }; 
a = [ 1, 2, 3];
f(a) % 
==> [ 1 3 4]

我想要的关键点是:

  • 希望函数接收一个数字 或字符串
  • 但是当给出一个数组时, 该功能将适用于 数组中的每个元素并返回 另一个阵列。

这类似于函数log()的工作方式:

>> log(1) 
ans =
      0 
>> log([1,2,3])
ans =
      0    0.6931    1.0986

谢谢

1 个答案:

答案 0 :(得分:6)

你可以这样做:

f = @(x) x + (x > 1);