matlab中的交叉运算

时间:2016-09-13 01:37:46

标签: matlab

有没有有效的方法在matlab中进行交叉和运算。给定两组A和B,交叉和是来自A和B的矢量的成对相加?

2 个答案:

答案 0 :(得分:3)

是:

a=[1 2 3 4]
b=[50 60 70 ]
bsxfun(@plus, a , b')

在GNU Octave或Matlab 2016b中你可以写:

a+b'

如果集合的元素是向量,这是一个可能的解决方案:

a=[1 2 3;4 5 6]
b=[10 20 30; 40 50 60;70 80 90]
[A, B]= meshgrid(1:size(a,1), 1:size(b,1))
a(A,:) + b(B,:)

a={[1 2 3], [4 5 6]}
b= {[10 20 30],[40 50 60],[70 80 90]}
[A,B]=meshgrid(1:length(a),1:length(b))
cell2mat(a(A))+ cell2mat(b(B))

答案 1 :(得分:1)

我找到了解决方案:

a=[1 2 3;4 5 6]

b=[10 20 30; 40 50 60;70 80 90]

repmat(a, [size(b,1) 1]) + kron(b,ones(size(a,1),1))