Split one array into two while splitting each cell
2 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (2 件)
Cedric
2014 年 6 月 4 日
編集済み: Cedric
2014 年 6 月 4 日
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 件のコメント
Cedric
2014 年 6 月 4 日
編集済み: Cedric
2014 年 6 月 4 日
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
2014 年 6 月 4 日
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 件のコメント
参考
カテゴリ
Help Center および File Exchange で Spreadsheets についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!