separate strings that are inside a cell
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
flashpode
el 17 de Sept. de 2021
Comentada: flashpode
el 18 de Sept. de 2021
Hey so I got a cell that is 12000x1 and inside this cell I got some strings that are 2x1 or 3x1. I want to delete this string but get the messages from there and put them inside the cell. Is there any function that let me do this?
4 comentarios
Jan
el 17 de Sept. de 2021
Yes, I see it. What do you want todo with these strings? Remove them or replace them? In the latter case: by what?
Respuesta aceptada
Jan
el 18 de Sept. de 2021
Editada: Jan
el 18 de Sept. de 2021
Your description is not clear yet. I dare to guess:
% Input (thanks Adam):
C = {"sdfsd"; "dare"; ["abs";"ses"]; "erwe"; "serwe"; ...
["444";"wer"]; "adrwed"; ["ee";"vse";"xxx"]; "sered"}
% Wanted output:
C = {"sdfsd"; "dare"; "abs";"ses"; "erwe"; "serwe"; ...
"444"; "wer"; "adrwed"; "ee"; "vse"; "xxx"; "sered"}
% Solution:
D = cellstr(cat(1, C{:}))
Más respuestas (1)
Adam Danz
el 17 de Sept. de 2021
Editada: Adam Danz
el 17 de Sept. de 2021
If your goal is to simply be able to read those lines, use cellfun to identify elements of cell array "C" that have more than one row of strings and then use cellfun again to transpose those rows.
Create demo data - you can see that there are 3 elements of C that are 2x1 or 3x1 string arrays
C = {"sdfsd"; "dare"; ["abs";"ses"]; "erwe"; "serwe"; ...
["444";"wer"]; "adrwed"; ["ee";"vse";"xxx"]; "sered"}
Transpose mutli-rows
[nRows, ~] = cellfun(@size,C);
isMultiRow = nRows>1;
C(isMultiRow) = cellfun(@(a) {a'}, C(isMultiRow))
If you'd like to join those strings into 1, replace the line above with this line.
C(isMultiRow) = cellfun(@(a) {strjoin(a,' ')}, C(isMultiRow))
10 comentarios
Adam Danz
el 18 de Sept. de 2021
@vicente Noguer, no problem, I agree with Jan. Providing sample of inputs (as you provided) and samples of expected outputs goes a long way.
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!