Подтвердить что ты не робот

Matlab: преобразовать массив числа в массив строк

Как преобразовать [12 25 34 466 55] в массив строк ['12' '25' '34' '466' '55']? Функции преобразования, которые я знаю, преобразуют этот массив в одну строку, представляющую весь массив.

4b9b3361

Ответ 1

Массив строк должен быть массивом ячеек. Тем не менее:

s = [12 25 34 466 55]
strtrim(cellstr(num2str(s'))')

Ответ 2

Использование arrayfun вместе с num2str будет работать:

>> A = [12 25 34 466 55]
A =
   12    25    34   466    55

>> arrayfun(@num2str, A, 'UniformOutput', false)
ans = 
    '12'    '25'    '34'    '466'    '55'

Ответ 3

Теперь после MATLAB 2016b вы можете просто использовать

s = [12 25 34 466 55]; 
string(s)

Ответ 4

В MATLAB ['12' '25' '34' '466' '55'] совпадает с одной строкой, содержащей эти числа. То есть:

['12' '25' '34' '466' '55']

ans =

12253446655

Мне нужно больше контекста для того, что вы пытаетесь выполнить, но, полагая, что хотите по-прежнему иметь доступ к каждому отдельному номеру в виде строки, массив ячеек, вероятно, лучший подход, который вы можете предпринять:

A = [1 2 3]
num2cell(num2str(A))

(Конечно, вам все равно придется удалять пробелы из ans)

Ответ 5

Начиная с Matlab2016b строковые массивы интегрированы. Вы можете просто преобразовать массив чисел в массив строк, используя string функцию:

s = [12 25 34 466 55];
string(s)

Выход:

ans = 

1×5 string array

"12"    "25"    "34"    "466"    "55"

Ответ 6

Начиная с R2016b есть также функция compose:

>> A = [12 25 34 466 55]

A =

    12    25    34   466    55

>> compose("%d", A)

ans = 

  1×5 string array

    "12"    "25"    "34"    "466"    "55"'''