这是给出问题的代码:
nVelCurve = length( velnum ); % number of assigned velocity curves
pixLocVC = vel_imloc(:,1)'; % column index for each assigned velocity curve
nVelPts = nan( 1,nVelCurve ); % number of points used from each chosen vel curve
pix = []; % row index for TWTT from velmodels, stacked
vels = []; % velocity for each TWTT from velmodels, stacked
for i=1:nVelCurve
data = sprintf( 'Fit%g', velnum(i) );
data = DataFits.(data);
data(:,1) = data(:,1);
dataidx = find( [data(:,1).*pps] < Npix ) ; %this line gives the problem
data = data(dataidx,:);
pix = [ pix; ceil(data(:,1).*pps) ];
nVelPts(i) = length(data);
vels = [ vels; data(:,2) ];
end
求解释
:数据是一个包含十进制整数的 n*2 元胞数组 :DataFits 是元胞数组的结构 : pps 和 Npix 是十进制整数
感谢 Cris Luego 的努力! 我已将有问题的行重写如下:
dataidx = find( [ cellfun(@(x) x*pps, data(:,1) ) ] < Npix) ;
亲切的问候!