矩阵电源帮助/ Matlab

时间:2014-04-20 23:16:15

标签: matlab matrix

我希望将一个矩阵提升到下一个矩阵并在取出产品之前对其进行换算。

e.g。

A = [2 3 5       
     2 3 0]

B = [2 2 1
     1 2 0]

所以prod(A.^B-1)会是:

第一行(2^2-1)*(3^2-1)*(5^1-1)=96

第二行(2^1-1)*(3^2-1)=8

我们会prod(A.^B-1) = 96, 81。诀窍也跳过零,我继续得零或NaN,我认为零也在计算。

有没有办法对此进行编码,

这是我想到的代码

if A~=0 && B~=0
    prod(A.^B-1)
end

1 个答案:

答案 0 :(得分:0)

您可以使用logical indexing替换A.^B-10的实例:

A = [2 3 5;2 3 0];
B = [2 2 1;1 2 0];
C = A.^B-1;
C(C==0) = 1;  % Replace zeros with ones
D = prod(C,2) % Product across the columns

返回

D =

    96
     8

如果您删除了零,我不认为您应该NaN,除非您的原始矩阵包含它。但是,您也可以使用相同的方式替换它(C(isnan(C)) = 1;)。