2010-07-05 4 views

Répondre

1
y = cellfun(@(a, b) sprintf('%d%s', b, a), x{1}, x{2}, 'UniformOutput', false); 
-1

Pour ceux qui sont intéressés, je pense avoir trouvé une solution.

Je redéfinis mon réseau de cellules comme:

X1 = 

{1x2} 

X1 = '' 'A' 

X2 = 

[1x2 double] 

X2 = 10 113 

Je me suis alors appliqué cette boucle:

NUM = []; 

for i = 1:size(X2')    #take the transpose of X2 
    p = num2str(X2(i));   #convert doubles to strings 
    str = STRCAT(p, X1(i));  #concatenate 
    NUM = [NUM str];    #add to another array 
end 


NUM = '10' '113A' 

Je suis sûr qu'il ya un moyen plus efficace mais Matlab et je serai probablement jamais sur bons termes. Parfois rapide et sale est suffisant!

Cheers, S :-)

1

En supposant que vous avez cette matrice de cellules pour X:

X = {{'' 'A'} {10 113}}; 

Vous pouvez créer votre tableau Y en utilisant INT2STR et STRCAT:

Y = strcat(int2str([X{2}{:}].'),X{1}.').'; 
0

Le Matlab File Exchange a une fonction écrite pour faire cela précisément. uniqueRowsCA

+0

Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien pour référence. Les réponses à lien uniquement peuvent devenir invalides si la page liée change. –

+0

J'ai ajouté quelques informations pour aider à trouver le lien devrait-il changer (peu probable avec le MFE). Pas sûr de ce que les parties essentielles de ce serait. – Superbest

Questions connexes