每个人我想制作这个矩阵
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)
答案 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 );