web-dev-qa-db-fra.com

Convertir le tableau de caractères MATLAB en chaîne

En commençant par le tableau de caractères MATLAB, A:

A(1,1) = 'A'
A(1,2) = 'P'
A(1,3) = 'R'
A(2,1) = 'M'
A(2,2) = 'A'
A(2,3) = 'Y'

Comment cela peut-il être converti en une cellule de chaînes, B, telle que:

B{1} = 'APR'
B{2} = 'MAY'

Edit: A est une cellule et l'utilisation de la fonction cellstr donne l'erreur

Error using cellstr (line 23)
S must be 2-D. 
10
rwolst

Utilisez la fonction suivante: http://www.mathworks.com/help/matlab/ref/cellstr.html

>> B =  cellstr(A)

B = 

    'APR'
    'MAY'

>> B{1}

ans =

APR
9

Pour un tableau de caractères 3D T

B = cellstr(T(1,:,:))

Donne l'erreur

Error using cellstr (line 23)
S must be 2-D.

Au lieu de cela, affectez-le d'abord à une matrice 2D, puis utilisez 'cellstr' comme Franck l'a suggéré ci-dessus.

A(:,:) = T(1,:,:)
B = cellstr(A)
2
rwolst