gpt4 book ai didi

matlab - 在matlab中创建从提升矩阵到幂的数组

转载 作者:太空宇宙 更新时间:2023-11-03 19:43:31 24 4
gpt4 key购买 nike

我需要创建一个 3 维数组,将矩阵的所有元素提升为向量给出的不同幂。有没有办法避免电源循环?

例如,如果 A 是标量,我可以这样做

A = 2;
b = 1:10;
C = A.^b;

如果A是一个向量,我可以做

A = [1, 2, 3];
b = 1:10;
C = bsxfun(@power, A, (0:5)');

如果A是矩阵怎么办?

最佳答案

再次使用bsxfun,但将指数(b)排列在第三维:

A = [1, 2 3; 4 5 6];
b = 1:10;
C = bsxfun(@power, A, permute(b(:), [2 3 1]));

结果是一个 3D 数组(在本例中为 2x3x10)。


如果指数是连续的值,下面的代码可能会更快:

n = 10; %// compute powers with exponents 1, 2, ..., n
C = cumprod(repmat(A, [1 1 n]) ,3);

关于matlab - 在matlab中创建从提升矩阵到幂的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26563696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com