1

我有两个向量,X一个基数和N一个指数。我想获取每个in和in的所有值的矩阵。e = xnxXnN

例如,以下输入:

X = [2 3 4]'
N = [1 2 3]

应该产生:

ans = [2 4 8; 3 9 27; 4 16 64]

有没有办法在不循环的情况下得到这个(就像你可以通过使用逐行乘积来获得 x×n 的所有值一样)?

4

2 回答 2

6

使用bsxfun

bsxfun(@power, X, N)

这假设X是一个列向量并且N是一个行向量。如果要保证这一点,请使用以下更健壮的语法:

bsxfun(@power, X(:), N(:).')
于 2013-06-02T10:27:56.080 回答
1

这可能比答案有点草率bsxfun,但您可以使用meshgrid

E = X.^(meshgrid(N)')

这假设两者X都是N行向量。如果两者都是列向量,则变为:

E = X.^(meshgrid(N))
于 2013-06-09T17:36:57.810 回答