矩阵kronecker产品系列

时间:2013-11-26 18:37:33

标签: matlab matrix series

每个人我想制作这个矩阵

C=[1 0] 
A=[1 2;1 2] 
B=[1 3;1 3] 

进入像这样的更大矩阵

F = [ CB,        0,   0,   0,...
      CAB,      CB,   0,   0... 
      CA^2B,   CAB,  CB,   0,... 
      CA^3B, CA^2B,  CB,   0 ]

直到A的总和为A^n

我可以解决它的问题,因为矩阵B由2行和2列组成 我试着使用这个函数但是如果B由2行和1列组成。

    for i=1:n  
      for j=1:n
         S(i,j)=C*(A^(i-1)/A^(j-1))*B 
      end 
   end  
   S1=tril(S)  

1 个答案:

答案 0 :(得分:1)

使用单元格,并使用递归来减少执行的乘法次数

[S{ 1:(n+1), 1:(n+1) }] = deal(zeros( 1, 2 )); % pre-allocate
S{1,1} = C; % we'll take care of B later - don't worry.  
for k=1:n
    S{k+1,1} = S{k,1} * A; % assignment to cell content
    S(k+1,2:(k+1)) = S(k,1:k); % cell assignment - notice the regular parenthesis
end
S = cellfun( @(x) x*B, S, 'UniformOutput', false ); % now multiply by B
S = cell2mat( S );