10

Starting with the MATLAB char array, 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'

How can this be converted to a cell of strings, B, such that:

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

Edit: A is a cell and using the function cellstr gives the error

Error using cellstr (line 23)
S must be 2-D. 
Alex Willison
  • 257
  • 7
  • 20
rwolst
  • 12,904
  • 16
  • 54
  • 75

2 Answers2

9

Use the following function: http://www.mathworks.com/help/matlab/ref/cellstr.html

>> B =  cellstr(A)

B = 

    'APR'
    'MAY'

>> B{1}

ans =

APR
Franck Dernoncourt
  • 77,520
  • 72
  • 342
  • 501
2

For a 3D char array T

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

Gives the error

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

Instead assign it to a 2D matrix first, then use 'cellstr' as Franck suggested above.

A(:,:) = T(1,:,:)
B = cellstr(A)
rwolst
  • 12,904
  • 16
  • 54
  • 75