Info

This question is closed. Reopen it to edit or answer.

How can I transform two values separted by _ of one colum in two columns?

1 view (last 30 days)
Hallo,
I have one column with two values separated by _ e.g. '78.5888_2.027'.
The aim is to separate these alue sin two columns making pltotting of value one against two possible.
Thank you fro your help,

Answers (4)

madhan ravi
madhan ravi on 15 May 2019
s='78.5888_2.027'
str2double(regexp(s,'\d+[\.?]\d*','match'))
  6 Comments
madhan ravi
madhan ravi on 15 May 2019
Edited: madhan ravi on 15 May 2019
cell2mat(cellfun(@(x)str2double(regexp(x,...
'\d+[\.]?\d*','match')),...
table2cell(T),'un',0)) % where T is n by 1 table assuming from the picture

Dawn MacIsaac
Dawn MacIsaac on 15 May 2019
You can also use strsplit in combination with str2double(), but you would have to loop through each row in the table.

Star Strider
Star Strider on 15 May 2019
This seems to work:
D = load('F.mat');
F = D.F;
for k = 1:size(F,1)
d(k,:) = sscanf(F{k},'%f_%f');
end
The loop is necessary because of the nature of ‘F’.

Adam Danz
Adam Danz on 15 May 2019
Edited: Adam Danz on 15 May 2019
Here's a one-liner. No loop needed.
xy = cell2mat(cellfun(@str2num, strtrim(regexprep(F,'[^0-9.]',' ')), 'UniformOutput', false));
xy(:,1) These are your x coordinates
xy(:,2) These are your y coordinates
Tested on your mat file.

Products

Community Treasure Hunt

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

Start Hunting!