Как преобразовать [12 25 34 466 55]
в массив строк ['12' '25' '34' '466' '55']
? Функции преобразования, которые я знаю, преобразуют этот массив в одну строку, представляющую весь массив.
Matlab: преобразовать массив числа в массив строк
Ответ 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"'''