web-dev-qa-db-fra.com

Matlab: convertir un tableau de nombre en tableau de chaînes

Comment puis-je convertir [12 25 34 466 55] en un tableau de chaînes ['12' '25' '34' '466' '55']? Les fonctions de conversion que je connais convertissent ce tableau en une chaîne représentant l’ensemble du tableau.

27
olamundo

Un tableau de chaînes doit être un tableau de cellules. Cela dit:

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

Utiliser arrayfun avec num2str fonctionnerait comme suit:

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

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

Maintenant, après MATLAB 2016b, vous pouvez simplement utiliser

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

Dans MATLAB, ['12' '25' '34' '466' '55'] est identique à une chaîne contenant ces nombres. C'est-à-dire:

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

ans =

12253446655

J'ai besoin de plus de contexte ici pour ce que vous essayez d'accomplir, mais si vous voulez toujours pouvoir accéder à chaque numéro sous forme de chaîne, un tableau de cellules est probablement la meilleure approche que vous puissiez adopter:

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

(Bien sûr, vous devrez toujours supprimer les espaces perdus des années)

0
Vish