在MATLAB中从另外两个矩阵的组合创建第三个矩阵

时间:2012-05-11 18:07:45

标签: matlab matrix element bsxfun

我在MATLAB中有两个表示365x24矩阵的表达式。第一个表达式有10,365x24矩阵,因此是

PV_power_output(:,:,K) 

,第二个表达式又是365x24,但有三个可能的矩阵,因此是

WT_energy_supply(:,:,M);ode here

现在,我正在寻找创建第三个矩阵,将元素添加到上面相同的位置,从而形成365x24矩阵。但是我想要一组矩阵,其中包含上面显示的两个表达式的所有可能组合(因此该矩阵必须为365x24x30。

我该如何解决这个问题? 那么MATLAB中的bsxfun函数呢?

1 个答案:

答案 0 :(得分:0)

使用repmat展开原始矩阵(为清楚起见,我将ab命名为“),然后添加它们,不需要bsxfun。

repmat(a,[1 1 size(b,3)]) + repmat(b,[1 1 size(a,3)]))

<强>更新

>> size(a)
ans = 
    364  24  10

>> size(b)
ans = 
    364  24  3

>> c=repmat(a,[1 1 size(b,3)])+repmat(b,[1 1 size(a,3)]);
>> size(c)
ans = 
    364  24  30

对我来说很好看。当然,您必须使用变量ab替换变量PV_power_outputWT_energy_supply