How to replace strings in a cell array

48 Ansichten (letzte 30 Tage)
012786534
012786534 am 25 Okt. 2019
Kommentiert: 012786534 am 25 Okt. 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 Kommentar
Adam
Adam am 25 Okt. 2019
Bearbeitet: Adam am 25 Okt. 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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Stephen23
Stephen23 am 25 Okt. 2019
Bearbeitet: Stephen23 am 25 Okt. 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'.

Weitere Antworten (0)

Kategorien

Mehr zu Programmatic Model Editing finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by