我希望在 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。
有没有一种优雅的方式来做到这一点?
提前致谢。
我希望在 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。
有没有一种优雅的方式来做到这一点?
提前致谢。
我想你需要的是
kvec = 0:1:16;
hvec = 10 .^ -kvec
arrayfun
、cellfun
、spfun
和是 MATLABstructfun
中bsxfun
一些有用的映射函数。
例如 usingarrayfun
hvec
将以这种方式计算:
hvec = arrayfun(@(x) 10^-x, kvec)
这种语法显然比使用数组幂要长.^
,但作为arrayfun
一个映射函数,它适用于任何给定的函数,而只有少数数组函数可用(其运算符的第一个字符是.
等.^
).*
。