乘以所有阵列元素

时间:2017-03-25 10:36:40

标签: arrays matlab permutation

我尝试使用所有可能的组合来乘以数组的元素。例如:A = [2,3,5] - > 2*3,3*5,5*2。如何在MATLAB中完成?

2 个答案:

答案 0 :(得分:4)

带有nchoosek

prod正是您正在寻找的。

C = nchoosek(A,2);    %Finding the combinations taken two at a time
Req = prod(C,2)       %Multipliying the combinations (columns)

%Output:
% Req =

%     6
%    10
%    15

Req=prod(nchoosek(A,2),2);作为一个班轮。

答案 1 :(得分:0)

A = [2,3,5];
storage(numel(A),numel(A))=0; % or storage = zeros(numel(A)), whichever you prefer
for ii = 1:numel(A)-1
    storage(1:numel(A)-ii,ii) = A(ii)*A(ii+1:end); % Multiplication
end

storage = storage(:); % Get a single vector
storage = storage(storage~=0); % remove zeros

你可以使用一个循环进行乘法运算,即首先将第一个之后的所有元素与第一个相乘,然后将第二个之后的所有元素与第二个相等。