Combining cell arrays with empty doubles
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Suppose I have two cell arrays, with
a = cell(1,2);
a{1} = 1;
b = cell(1,2);
b{2} = 2;
How can I quickly combine the two to give me
1×2 cell array
{[1]} {[2]}
?
In general, I want to combine several cell arrays of the same dimension, which at a given index either either all have {0×0 double} doubles or at most one of the cell arrays does not have a {0×0 double} double.
Thanks!
Michael
0 commentaires
Réponse acceptée
Stephen23
le 8 Jan 2021
Modifié(e) : Stephen23
le 8 Jan 2021
% slightly more complex example data:
a = {[],1;[],[]};
b = {[],[];2,[]};
c = {[],[];[],NaN};
%
tmp = cat(3,a,b,c);
[~,idp] = sort(cellfun('isempty',tmp),3);
sz = size(tmp);
[idr,idc] = ndgrid(1:sz(1),1:sz(2));
idx = sub2ind(sz,idr,idc,idp(:,:,1));
out = tmp(idx)
0 commentaires
Voir également
Catégories
En savoir plus sur Matrices and Arrays dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!