行方式将一个数组添加到另一个数组

时间:2017-01-23 21:38:40

标签: arrays matlab matrix addition

我有一个1x64大小的阵列A和另一个64x1806大小的阵列B.我想以这样一种方式将A添加到B中,即A的第一个元素被添加到B的第一行,依此类推,最多64个元素被添加到B的第64行。我怎样才能在matlab中做到这一点。例如

A= (4 5 6 7) 
B=  (3 4 5;
    4 5 6;
    4 5 6;
    3 4 5 )
c=(4+3) (4+4) (4+5);
  (5+4) (5+5) (5+6);
  (6+4) (6+5) (6+6);...

2 个答案:

答案 0 :(得分:5)

使用bsxfun添加A转置和B元素与单身扩展:

A = [4 5 6 7]
B = [3 4 5; 4 5 6; 4 5 6; 3 4 5];
C = bsxfun(@plus, A.', B);

或者,从Matlab R2016b开始,您可以直接使用+,感谢implicit singleton expansion

C = A.' + B;

答案 1 :(得分:0)

如果我理解正确,您可能希望首先使用repmat来重复"重复"对于每一列,当它与B具有相同的大小时,只需向其添加B:

$fulldate = $row["refreshdate"];


$prcount= mysql_query("SELECT linkid FROM linksbuilt WHERE clientid = '$clientid' and linktype = 'PR' and DATEDIFF(day,'$fulldate',getdate()) < 31 ");