reform.m

来自「kmeans clustering in matlab」· M 代码 · 共 46 行

M
46
字号
function B = reform(A, dr, dc, bs, bv, ncc)%% REFORM: B = reform(A, dr, dc, bs, bv, ncc);%% Convert each row of A into a dr X dc chip in B.% Arguments:%   A   - input matrix with chips as rows%   dr  - number of rows in a chip%   dc  - number of cols in a chip%   bs  - (opt) size of border between chips%   bv  - (opt) value given to pixels in borders%   ncc - (opt) number of chips per row in B%% Modified: 04/21/93, 23:10 - added ncc as an optional parameter and fixed%       the row-column problem involved in the reshaping of A.%% Modified: 05/02/94 - added bs and bv as optional arguments%[ar, ac] = size(A);if (nargin < 6)  ncc = ceil(sqrt(ar));  % Number of chip columns (i.e., nchips per row)endif (nargin < 5)   bv = 0;endif (nargin < 4)  bs = 3;endncr = ceil(ar/ncc); % Number of chip rows%[ncr, ncc];%bdr = dr + bs;bdc = dc + bs;%% Preallocate BB = bv .* ones(ncr * bdr, ncc * bdc - bs);%% Convert each row of A into a chip in Bfor i = 1 : ar  r0 = 1 + fix((i-1)/ncc)  * bdr;  c0 = 1 + rem((i-1), ncc) * bdc;  B(r0:r0+dr-1, c0:c0+dc-1) = (reshape(A(i,:), dc, dr))';end

⌨️ 快捷键说明

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