X基数とN指数の2 つのベクトルがあります。各inおよびinのすべての値の行列を取得したいと考えています。e = xnxXnN
たとえば、次の入力:
X = [2 3 4]'
N = [1 2 3]
生成する必要があります:
ans = [2 4 8; 3 9 27; 4 16 64]
ループせずにこれを取得する方法はありますか (列ごとの行積を使用して x×n のすべての値を取得できるように)?
X基数とN指数の2 つのベクトルがあります。各inおよびinのすべての値の行列を取得したいと考えています。e = xnxXnN
たとえば、次の入力:
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))