این کد blkproc در اکتاو هست شما این را در فایلی به نام بذارید و نام blkproc را در برنامه بالا به octblkproc تغییر بدید ببینیم اجرا می شه یا نه.

function B = octblkproc(A, varargin)
if(nargin<3)
error('blkproc: invalid number of parameters.');
end

%% check 'indexed' presence
indexed=false;
p=1;
if(ischar(varargin{1}) && strcmp(varargin{1}, 'indexed'))
indexed=true;
p = p + 1;
if(isa(A,'uint8') || isa(A,'uint16'))
padval=0;
else
padval=1;
end
else
padval=0;
end

%% check [m,n]
if(~isvector(varargin{p}))
error('blkproc: expected [m,n] but param is not a vector.');
end
if(length(varargin{p})~=2)
error('blkproc: expected [m,n] but param has wrong length.');
end
sblk=varargin{p}(:);
p= p + 1;

%% check [mborder,nborder]
if(nargin<p)
error('blkproc: required parameters haven't been supplied.');
end

if(isvector(varargin{p}) && isnumeric(varargin{p}))
if(length(varargin{p})~=2)
error('blkproc: expected [mborder,nborder] but param has wrong length.');
end
sborder=varargin{p}(:);
p = p + 1;
else
sborder=[0;0];
end

%% check fun
%% TODO: add proper checks for this one
if(nargin<p)
error('blkproc: required parameters haven't been supplied.');
end

fun=varargin{p};
if(~isa(fun,'function_handle') &&
~isa(fun,'inline function') &&
~ischar(fun))
error('blkproc: invalid fun parameter.');
end

%% remaining params are params to fun
%% extra params are p+1:nargin-1

%% First of all we calc needed padding which will be applied on bottom
%% and right borders
%% The '-' makes the function output needed elements to fill another
%% block directly
sp=mod(-size(A)',sblk);

if(any(sp))
A=padarray(A,sp,padval,'post');
end

%% we store A size without border padding to iterate later
soa=size(A);

%% If we have borders then we need more padding
if(any(sborder))
A=padarray(A,sborder,padval);
end

%% calculate end of block
eblk=sblk+sborder*2-1;

%% now we can process by blocks
%% we try to preserve fun return type by concatenating everything
for i=1:sblk(1):soa(1)
%% This assures r has the same class as returned by fun
r=feval(fun,A(i:i+eblk(1),1:1+eblk(2)),varargin{p+ 1:nargin-1});
for j=1+sblk(2):sblk(2):soa(2)
r=horzcat(r,feval(fun,A(i:i+eblk(1),j:j+eblk(2)),v arargin{p+1:nargin-1}));
end
if(i==1) %% this assures B has the same class as A
B=r;
else
B=vertcat(B,r);
end
end
end