next up previous
Next: もっと変数が欲しい Up: 線型代数 Previous: 行列の特定の行や列を取り出す(row,col)

例題:行列のテンソル積

行列のテンソル積が見当たらないので作ってみました。 concatMatrix と stackMatrix とを組み合わせるだけですから、 簡単です。

//tensor product of A and v for a matrix A and a row vector v
tensor_vec:=proc(A,v) 
local C;
local j;
begin
C:=A*v[1,1]:
for j from 2 to linalg::ncols(v) do
C:=C.(A*v[1,j]):
end_for: //j
end_proc:

//tensor product of A and B
tensor:=proc(A,B)
local C;
local i;
begin
C:=tensor_vec(A,linalg::row(B,1)):
for i from 2 to linalg::nrows(B) do
C:=linalg::stackMatrix(C,tensor_vec(A,linalg::row(B,i))):
end_for: //i
return(C);
end_proc:



2008-11-15