2011-03-09 54 views
2

我想写一个函数,最好是匿名函数,它过滤一个数组。这是很难用言语来说,但它是这样的:如何在Matlab中使用匿名函数过滤数组?

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

我想关键点是:

  • 希望函数收到一些 或字符串
  • 但给出的时数组, 该函数将自身应用于 数组中的每个元素并返回 另一个数组。

这是类似的方式,功能日志()的工作原理:

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

谢谢

+0

@ Martin08:什么样的字符串输入你期望函数接收? –

+0

@ b3:字符串将位于单元格数组{'str1','str2'}中。谢谢 – Martin08

+0

@ Martin08:当输入是'{'str1','str2'}'时,函数的输出应该是什么? –

回答

6

你可能只是这样做:

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