📄 mfbox_pre_selectslices_run.m
字号:
function [X,mask,grid,timeline,params,private]=mfbox_pre_selectslices_run(X,mask,grid,timeline,params,runflag,private)% select slices%% Usage:% [X,mask,grid,timeline,params,private]=mfbox_pre_selectslices_run(X,mask,grid,timeline,params,runflag,private)%% X - (NxT) data% or struct for mfbox_databackend('getdata',X,i),[],1);% mask - data mask (XxYxZ) with sum(mask(:))==N% grid - 3d positions (3xN) of the data values% timeline - timeline (1xT)% params - struct with% priority - evaluation priority% xmin - min x-value% xmax - max x-value% ymin - min y-value% ymax - max y-value% zmin - min z-value% zmax - max z-value% runflag - -1 get default parameter% 0 interactive ask parameters% 1 interactive ask parameters and run% 2 run% private - private data to enable plot updates while selecting (see also mfbox_databackend)%% Copyright by Peter Gruber and Fabian J. Theis% Signal Processing & Information Theory group% Institute of Biophysics, University of Regensburg, Germany% Homepage: http://research.fabian.theis.name% http://www-aglang.uni-regensburg.de%% This file is free software, subject to the % GNU GENERAL PUBLIC LICENSE, see gpl.txterror(nargchk(1,7,nargin));error(nargchk(1,6,nargout));if (isstruct(X)), s = [X.dim,X.timesteps];else, s = size(X);enddim = s(1:(end-1));if (length(dim)<2), dim = [1,dim]; endn = s(end);if isempty(mask), mask=true(dim); end % we want no empty masksif (nargin<2), mask = true(dim); enddim = size(mask);if (length(dim)==length(s)), n = 1; endwhile (length(dim)<3), dim = [dim,1]; endif (nargin<3), grid = mfbox_mkgrid(dim)'; endif (nargin<4), timeline = 0:(n-1); endif (nargin<5), params = []; endif (nargin<6), runflag = 1; endif (nargin<7), private = []; endparams = mfbox_checkparam(params,'pre','selectslices', ... struct('xmin',1,'xmax',dim(1),'ymin',1,'ymax',dim(2), ... 'zmin',1,'zmax',dim(3),'priority',30));if (params.xmax==0), params.xmax = dim(1); endif (params.ymax==0), params.ymax = dim(2); endif (params.zmax==0), params.zmax = dim(3); endif (abs(runflag-0.5)<1) if (exist('OCTAVE_HOME')~=5)% matlab [params,private] = mfbox_pre_selectslicesg(X,mask,grid,timeline,params,runflag,private); elseif (exist('OCTAVE_HOME')==5) %octave [params,runflag] = mfbox_getparam(params,runflag,'mfbox_pre_selectslicesg.py'); endendif (runflag>0 && isstruct(params)) nmask = false(dim); x = 1:dim(1); y = 1:dim(2); z = 1:dim(3); v = params.xmin; w = params.xmax; if (v<=w), x = (x>=v)&(x<=w); else x = (x<w)|(x>v); end v = params.ymin; w = params.ymax; if (v<=w), y = (y>=v)&(y<=w); else y = (y<w)|(y>v); end v = params.zmin; w = params.zmax; if (v<=w), z = (z>=v)&(z<=w); else z = (z<w)|(z>v); end nmask(x,y,z) = true; mask = nmask & mask; if (~isstruct(X)) sgr = size(grid); sm = size(mask); g = mat2cell(min(repmat(sm',1,sgr(2)),max(ones(sgr), ... round(grid))),ones(1,sgr(1)),sgr(2)); nmask = mask(sub2ind(sm,g{:})); grid = grid(:,nmask); X = reshape(X,[],n); X = X(nmask,:); endend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -