Ajout de la chaîne de Matlab tableau
Comment puis-je ajouter une chaîne à une Matlab colonne de tableau sage?
Voici un petit extrait de code de ce que je suis en train de faire:
for_loop
filename = 'string';
name=[name; filename]
end
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'utiliser des tableaux de cellules. Si le nombre d'itérations sont connus à l'avance, je vous suggère de préallouer:
sinon, vous pouvez faire quelque chose comme:
names
comme entrée pourfopen
, cependant,fopen
est de se plaindre que c'est un faux type:cell
. Comment puis-je convertir des cellules de type string?Comme d'autres réponses ont noté, en utilisant des tableaux de cellules est probablement l'approche la plus simple, qui fera en sorte que votre variable
name
être une cellule de tableau où chaque élément de cellule contient une chaîne de caractères.Cependant, il ya une autre option à l'aide de la fonction STRVCAT, qui sera à la verticale concaténer des chaînes. Au lieu de créer une cellule de tableau, cela va créer un 2-D de la matrice de caractère avec chaque ligne contenant une chaîne de caractères. STRVCAT automatiquement plaquettes sur les extrémités de chaînes de caractères avec des espaces si nécessaire pour remplir correctement les lignes de la matrice:
Comme mentionné ailleurs, dans MATLAB toutes les chaînes dans un tableau doit être de la même longueur. Pour avoir des chaînes de longueurs différentes, l'utilisation d'une matrice de cellules:
Utilisation
strcat
fonction pour ajouter l'aide d'une ligne de code sans utiliser de boucle:strcat
œuvres inégales de la taille de concaténation!Si vous êtes à l'aide de deux tableaux ci-dessous (A et B), vous pouvez les ajouter vous aimez ce que vous faites avec d'autres matrices.
Pour être complet, il convient également de mentionner la nouvelle
string
de la classe introduit dans MATLAB R2016b; un conteneur pour du texte et de données ainsi que d'un ensemble de fonctions pour faciliter la manipulation de texte.Pour le comparer à mon autre exemple, ici, est de savoir comment allouer un tableau de chaînes:
Et voici comment étendre dynamiquement le tableau sans preallocation:
(Bien sûr, si les cordes sont toutes de la même forme ou une séquence avec un motif, il ya de meilleures façons de créer un tableau sans boucle. Le ci-dessus est juste un exemple de remplissage du tableau une par une).
La
string
conteneur peut aussi convertir vers/à partir de des tableaux de caractères et des cellules des tableaux de caractères.Je sais que c'est un vieux fil, mais il me semble que si vous ne avez même pas besoin d'une boucle si c'est tout ce que vous faites dans la boucle. Pourriez-vous utiliser une concaténation verticale?
Vous êtes dans la bonne voie. Utilisation de {} pour construire une cellule de tableau, comme ceci
devrait faire ce que vous voulez.