Split one array into two while splitting each cell
1 view (last 30 days)
Show older comments
I have an array which needs to be split into two. It is in the format:
13008KT
08009KT
13009KT
13008KT
These new arrays need to split this into one array that contains the first 3 numbers, and a second array that contains the second two numbers and leaves out the KT.
Help is much appreciated
3 Comments
Answers (2)
Cedric
on 4 Jun 2014
Edited: Cedric
on 4 Jun 2014
Assuming that you have
data = {'13008KT', '08009KT', '13009KT', '13008KT'} ;
here one way to go:
>> data = cat( 1, data{:} ) ;
>> array1 = data(:,1:3) - '0'
array1 =
1 3 0
0 8 0
1 3 0
1 3 0
>> array2 = data(:,4:5) - '0'
array2 =
0 8
0 9
0 9
0 8
6 Comments
Cedric
on 4 Jun 2014
Edited: Cedric
on 4 Jun 2014
Ok, your Excel file must have multiple columns. Assuming that the relevant column is column 5 of a variable named textData
[~,textData] = xlsread( 'myFile.xlsx' ) ;
you can just make the following update
data = cat( 1, textData{:,5} ) ; % Update with the relevant column #.
and then apply what is in my solution above.
array1 = data(:,1:3) - '0' ;
array2 = data(:,4:5) - '0' ;
José-Luis
on 4 Jun 2014
Building from Cedric's answer
Then your data probably looks like this:
data = [{'13008KT}'}, {'08009KT'}, {'13009KT'}, {'13008KT'}] ;
first_three_as_string = cellfun(@(x) x(1:3),data,'uniformoutput',false);
last_two_as_string = cellfun(@(x) x(4:5),data,'uniformoutput',false);
first_three_as_number = cellfun(@(x) str2double(x),first_three_as_string);
last_two_as_number = cellfun(@(x) str2double(x),last_two_as_string);
Please accept an answer if it helped you.
0 Comments
See Also
Categories
Find more on Text Data Preparation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!