How to replace strings in a cell array

49 vues (au cours des 30 derniers jours)
012786534
012786534 le 25 Oct 2019
Commenté : 012786534 le 25 Oct 2019
Hello,
I an wondering how to replace strings in a cell array based on the content of the previous cell. Every time that a cell in 'input' starts with the characters QQQQ, that cell is renamed with Q_ and the content of the previous cell. For example QQQQ_01 would be renamed Q_D and QQQQ_02 would be renamed Q_E and so on. How would I do that ? The input and the desired output are illustrated below.
input = {'A', 'B', 'C', 'D', 'QQQQ_01', 'E', 'QQQQ_02'}
output = {'A', 'B', 'C', 'D', 'Q_D', 'E', 'Q_E'}
  1 commentaire
Adam
Adam le 25 Oct 2019
Modifié(e) : Adam le 25 Oct 2019
Seems like the kind of task so specific a for loop would do the job fine.
Note that they are chars rather than strings though, a distinction which didn't used to matter in Matlab but does now that strings have been introduced as their own data type.

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 25 Oct 2019
Modifié(e) : Stephen23 le 25 Oct 2019
>> C = {'A', 'B', 'C', 'D', 'QQQQ_01', 'E', 'QQQQ_02'}
>> X = find(strncmp(C,'QQQQ',4));
>> C(X) = strcat('Q_',C(X-1))
C =
'A' 'B' 'C' 'D' 'Q_D' 'E' 'Q_E'
You will have to decide how to handle if the first cell contains 'QQQQ'.
  1 commentaire
012786534
012786534 le 25 Oct 2019
Thank you Stephen.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Programmatic Model Editing dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by