Split the given string into characters

3 Ansichten (letzte 30 Tage)
Abdul Rehan Khan Mohammed
Abdul Rehan Khan Mohammed am 17 Mai 2018
Kommentiert: Image Analyst am 18 Mai 2018
I have a column in my table that has values such as '2.6ELKUxQKWPVJVHxxxxC.4xxxIxSxJJxxxxx', it has altogether 37 single characters. I want to split the string into 37 different columns for further data analysis. I have tried using 'split' function, but it doesn't work.
  1 Kommentar
Stephen23
Stephen23 am 17 Mai 2018
Bearbeitet: Stephen23 am 17 Mai 2018
"I want to split the string into 37 different columns..."
Your char vector already has 37 columns. This is easy to check:
>> str = '2.6ELKUxQKWPVJVHxxxxC.4xxxIxSxJJxxxxx';
>> size(str)
ans =
1 37

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Image Analyst
Image Analyst am 17 Mai 2018
Here's an example for 8 columns. You can expand it to 37 columns.
ca = {'1.6ELKUxQKWPVJVHxxxxC.4xxxIxSxJJxxxxx'; '2.6ELKUxQKWPVJVHxxxxC.4xxxIxSxJJxxxxx'; '3.6ELKUxQKWPVJVHxxxxC.4xxxIxSxJJxxxxx'}
t = cell2table(ca)
% Now we have our table.
% Extract this one column:
col1 = t{:,1}
% Make 37 cell arrays
ca1 = cell(37, 1);
ca2 = cell(37, 1);
ca3 = cell(37, 1);
ca4 = cell(37, 1);
ca5 = cell(37, 1);
ca6 = cell(37, 1);
ca7 = cell(37, 1);
ca8 = cell(37, 1);
for row = 1 : length(col1)
thisRow = col1{row};
ca1{row} = thisRow(1);
ca2{row} = thisRow(2);
ca3{row} = thisRow(3);
ca4{row} = thisRow(4);
ca5{row} = thisRow(5);
ca6{row} = thisRow(6);
ca7{row} = thisRow(7);
ca8{row} = thisRow(8);
end
t2 = table(ca1, ca2, ca3, ca4, ca5, ca6, ca7, ca8)
  3 Kommentare
Abdul Rehan Khan Mohammed
Abdul Rehan Khan Mohammed am 18 Mai 2018
Bearbeitet: Abdul Rehan Khan Mohammed am 18 Mai 2018
Thanks! yes, it is a lot simpler.
Image Analyst
Image Analyst am 18 Mai 2018
Yes simpler, but I agree with Guillaume that it's better to leave it as a string and not create a table with all those columns.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

KSSV
KSSV am 17 Mai 2018
str = '2.6ELKUxQKWPVJVHxxxxC.4xxxIxSxJJxxxxx' ;
iwant = cell(1,length(str)) ;
for i = 1:length(str)
iwant{i} = str(i) ;
end
  3 Kommentare
KSSV
KSSV am 17 Mai 2018
Bearbeitet: KSSV am 17 Mai 2018
Yaaaa..:/
Guillaume
Guillaume am 17 Mai 2018
And even much simpler is not to bother at all. str already has 37 different columns. Each one can be accessed with str(columnindex).

Melden Sie sich an, um zu kommentieren.


Guillaume
Guillaume am 17 Mai 2018
A char array such as
str = '2.6ELKUxQKWPVJVHxxxxC.4xxxIxSxJJxxxxx'
already has different columns. If you want to access column 6 of str, it's simply:
str(6)
Exactly the same as when accessing columns of a numerical matrix.
  1 Kommentar
Image Analyst
Image Analyst am 17 Mai 2018
He means columns of his table, not columns of that string.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Data Type Identification 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