我有两个向量,X
一个基数和N
一个指数。我想获取每个in和in的所有值的矩阵。e = xn
x
X
n
N
例如,以下输入:
X = [2 3 4]'
N = [1 2 3]
应该产生:
ans = [2 4 8; 3 9 27; 4 16 64]
有没有办法在不循环的情况下得到这个(就像你可以通过使用逐行乘积来获得 x×n 的所有值一样)?
我有两个向量,X
一个基数和N
一个指数。我想获取每个in和in的所有值的矩阵。e = xn
x
X
n
N
例如,以下输入:
X = [2 3 4]'
N = [1 2 3]
应该产生:
ans = [2 4 8; 3 9 27; 4 16 64]
有没有办法在不循环的情况下得到这个(就像你可以通过使用逐行乘积来获得 x×n 的所有值一样)?
使用bsxfun
:
bsxfun(@power, X, N)
这假设X
是一个列向量并且N
是一个行向量。如果要保证这一点,请使用以下更健壮的语法:
bsxfun(@power, X(:), N(:).')
这可能比答案有点草率bsxfun
,但您可以使用meshgrid
:
E = X.^(meshgrid(N)')
这假设两者X
都是N
行向量。如果两者都是列向量,则变为:
E = X.^(meshgrid(N))