How to replace strings in a cell array

49 次查看(过去 30 天)
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 个评论
Adam
Adam 2019-10-25
编辑:Adam 2019-10-25
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.

请先登录,再进行评论。

采纳的回答

Stephen23
Stephen23 2019-10-25
编辑:Stephen23 2019-10-25
>> 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'.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Programmatic Model Editing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by