MATLAB编程(1)——计算两个向量元素的组合

问题描述:

       已知两个向量,现在,分别从两个向量中各取一个元素,做组合,如何得到全部组合结果?

例如:已知向量A=[2;8]; B=[5;8;10];,按要求得到的结果应为:

res =

     2     5
     2     8
     2    10
     8     5
     8     8
     8    10

代码实现:

A = [ 2; 8 ];
B = [ 5; 8; 10 ];
[ m, n ] = meshgrid( A, B' );
[ res(:,1),res(:,2) ] = deal( reshape(m,[],1), reshape(n,[],1) );

 

 

若要去掉组合结果中两个元素重复的这种组合,即要得到如下结果:

res =

     2     5
     2     8
     2    10
     8     5     
     8    10

代码实现:

A = [ 2; 8 ];
B = [ 5; 8; 10 ];
[ m, n ] = meshgrid( A, B' );
[ m, n ] = deal( reshape(m,[],1), reshape(n,[],1) );
k = m==n;
m(k) = [];
n(k) = [];
res(:,1)=m; res(:,2) = n;

 

以上内容参考网址:

http://www.ilovematlab.cn/thread-321138-1-1.html

你可能感兴趣的:(MATLAB编程(1)——计算两个向量元素的组合)