2

我希望在 matlab 中找到映射函数。所以这是我正在考虑的例子:

kvec = 0:1:16
kvec =

 0     1     2     3     4     5     6     7     8     9    10    11    12    13    14    15    16

现在我希望生成一个名为 hvec 的第二个向量,它基本上为 kvec 中的每个值计算 10 ^ -k。

有没有一种优雅的方式来做到这一点?

提前致谢。

4

2 回答 2

3

我想你需要的是

kvec = 0:1:16;
hvec = 10 .^ -kvec
于 2012-09-29T18:28:07.290 回答
2

arrayfuncellfunspfun和是 MATLABstructfunbsxfun一些有用的映射函数。

例如 usingarrayfun hvec将以这种方式计算:

hvec = arrayfun(@(x) 10^-x, kvec)

这种语法显然比使用数组幂要长.^,但作为arrayfun一个映射函数,它适用于任何给定的函数,而只有少数数组函数可用(其运算符的第一个字符是..^.*

于 2012-09-29T19:48:10.270 回答