comment convertir une cellule en chaîne de caractères en matlab

Supposons que j'ai une cellule

v =    'v'    [576.5818]    [3.0286]    [576.9270]

       'v'    [576.5953]    [3.1180]    [576.8716]

       'f'    [      56]    [    58]    [      52]

       'f'    [      56]    [    58]    [      52]

et je veux convertir cette matrice de cellules à l'aide d'une chaîne de format pour chaque élément:' %.5f'

Comment puis-je faire cela? J'ai essayé la méthode suivante, mais j'obtiens une erreur:

f1 = @(x) sprintf('   %.5f',x);
cellfun(f1, num2cell(v),'UniformOutput', false) 

j'obtiens une erreur ???

Error using ==> sprintf

Function is not defined for 'cell' inputs.

Error in ==> @(x)sprintf(' %.5f',x)

quelqu'un Peut-il m'aider merci d'avance

17
demandé sur merlin2011 2012-11-07 00:03:19

4 réponses

Chaîne de caractères est un tableau de cellule

enfin, pas vraiment.. C'est une matrice, mais continuez à lire.

je suppose que la cellule de tableau est le plus mystique de type de données dans MATLAB. Donc, nous allons démystifier un peu ;-)

supposons

fruits = {...
    'banana',...
    'apple',...
    'orange'...
}

tout d'Abord entier indexation n'est pas nécessaire pour les petits tableaux. Il est beaucoup mieux d'utiliser foreach