2

matlab でマッピング関数を探しています。だからここに私が考えている例があります:

kvec = 0:1:16
kvec =

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

ここで、kvec の各値に対して本質的に 10 ^ -k を計算する hvec という 2 番目のベクトルを生成したいと考えています。

それを行うエレガントな方法はありますか?

前もって感謝します。

4

2 に答える 2

3

私はあなたが必要とするものだと思います

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

arrayfuncellfunspfunstructfunおよびbsxfunは、MATLAB の便利なマッピング関数です。

たとえば、 usingarrayfun hvecは次のように計算されます。

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

この構文は明らかに配列 power を使用するよりも長くなりますが、マッピング関数.^と同様に任意の関数に対して機能しますが、使用できる配列関数はごくわずかです (演算子の最初の文字はなどです)。arrayfun..^.*

于 2012-09-29T19:48:10.270 に答える