dab.m

来自「经典的张正友的摄像机的两步标定程序」· M 代码 · 共 40 行

M
40
字号
function [dABdA,dABdB] = dAB(A,B);

%      [dABdA,dABdB] = dAB(A,B);
%
%      returns : dABdA and dABdB

[p,n] = size(A); [n2,q] = size(B);

if n2 ~= n,
   error(' A and B must have equal inner dimensions');
end;

if issparse(A) |  issparse(B) | p*q*p*n>625 ,
  dABdA=spalloc(p*q,p*n,p*q*n);
else
  dABdA=zeros(p*q,p*n);
end;


for i=1:q,
   for j=1:p,
   ij = j + (i-1)*p;
      for k=1:n,
         kj = j + (k-1)*p;
         dABdA(ij,kj) = B(k,i);
      end;
   end;
end;


if issparse(A) |  issparse(B) | p*q*n*q>625 ,
  dABdB=spalloc(p*q,n*q,p*q*n);
else
  dABdB=zeros(p*q,q*n);
end;

for i=1:q
   dABdB([i*p-p+1:i*p]',[i*n-n+1:i*n]) = A;
end;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?