【发布时间】:2018-06-26 04:49:59
【问题描述】:
我是 matlab 的初学者,我想计算从不同行中选取的 (3*n) 矩阵的每个可能元素组合的乘积之和。
例如,如果矩阵是 x = [1 2 3 , 4 5 6] 我想要的结果 D = 1*4 + 1*5 + 1*6 + 2*4 + 2*5 + 2*6 + 3*4 + 3*5 + 3*6。
我编写了以下递归代码,但在通过引用传递变量时遇到问题。
function combination(n,A,x) % n= number of rows ,A= empty array, x = the matrix
if n == 0
D = D + prod(A);
else
for i = 1:1:3
A = [A x(n,i)];
combination(n-1,A,x);
if length(A)>=1
A = A(1:length(A)-1);
end
end
end
end
我需要 D 参数,但是当我将 D 声明为全局时,它没有帮助。 在matlab中无论如何我可以通过函数中的引用传递D并在最后得到结果? 提前致谢。 对不起我的英语。
【问题讨论】:
-
如果您想了解一种相对先进的方法来执行此操作,请参阅handle classes。