Dear all,
I understand that in order to store column vectors of different length one ought to use cells. I fail to see my mistake in attempting to do this in the code below. I get the following error message: 'Array indices must be positive integers or logical values' but I don't really know what that means. Here's my attempt:
clc; clear; [~,~,raw] = xlsread( '21series',8) ; dates = cellfun( @(x) sscanf( x, 'Q%d %d' ), raw(2:end,1), 'UniformOutput', false ) ; dates = horzcat( dates{:} ).' ; headers = raw(1,2:end) ; select = raw(2:end,2:end) ; % Cell array mixed str/values.
select(cellfun( @ischar, select )) = {NaN} ; % Cell array NaN/values
select = cell2mat( select ) ; % Numeric array.
[nnn,kkk] = size(select); for colidtrim=1:kkk; datalogical(:,colidtrim)=~ isnan(select(:,colidtrim)); end newData=cell(1,kkk); for colidback2num=1:kkk trimtempstoreCol = select(~isnan(select(:,colidback2num)),colidback2num); newData{trimtempstoreCol}; end
Any suggestions?
Many thanks
Best Answer