Use of max iteratively on a cell
Informazioni
Questa domanda è chiusa. Riaprila per modificarla o per rispondere.
Mostra commenti meno recenti
Hi, I have a 1x4cell (seekeddata_s) with 4 8x7 cells like the attached one (sl_ts). All of them 8x7 but each of them could have a different size of the singles inside. I would like to get 4 8x7 cells with the maximum value from each cell and store the results on a structure.
I have tried the structure like this, but the max function is not working properly:
if true
% code
end
%%%%%%%%%%%%%%%%%%%%%%%%%
sl_data = [] ;
%
% for every file
for ii = 1:4
file_data = seekeddata_s{1,ii} ;
t = C_t{1,ii};
for jj = 1:8
for kk =1: 7
sl_ts = file_data (:,:);
[mo,to] = max(sl_ts{jj,kk}) ;
sl_data = setfield(sl_data,['file_' num2str(ii)],'max_sl',{jj,kk},mo);
sl_data = setfield(sl_data,['file_' num2str(ii)],'sl_ts',{':',':'},sl_ts);
sl_data = setfield(sl_data,['file_' num2str(ii)],'time_ts',{1,':'},t);
end
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 Commenti
KSSV
il 28 Set 2016
You can get max of each cell in a single stretch.....
load time_s.mat ;
k = cellfun(@max,slamming_ts,'UniformOutput', false) ;
José-Luis
il 28 Set 2016
I don't get it. You are mixing cell arrays and structures but the how is not entirely clear to me. If you use max() on an array, it will give you the maximum of every column. Is that what you want?
KSSV
il 28 Set 2016
Each cell has a column vector....
Isma_gp
il 28 Set 2016
Risposte (1)
I think that a main problem is who to compute the max values.
You can compute the max of each cell as follows:
M = cellfun(@(c) double(max(c)), slamming_ts, 'Uni', false);
Find the empty cells and replace with NaN
E = cell2mat(cellfun(@isempty, M, 'Uni', false));
M(E) = {NaN};
Convert 8 x 7 cell to 8 x 7 matrix:
M = cell2mat(M);
Questa domanda è chiusa.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!