我尝试使用所有可能的组合来乘以数组的元素。例如:A = [2,3,5]
- > 2*3,3*5,5*2
。如何在MATLAB中完成?
答案 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
你可以使用一个循环进行乘法运算,即首先将第一个之后的所有元素与第一个相乘,然后将第二个之后的所有元素与第二个相等。