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

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,

답변 (4개)

s='78.5888_2.027'
str2double(regexp(s,'\d+[\.?]\d*','match'))

댓글 수: 6

Thank you,
for this example it works but for my table colum the result will be NaN.
Upload your table as .mat file.
Here is the tabe as .mat file
Could you post a screenshot? I'm having trouble downloading the file.
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 2019년 5월 15일

0 개 추천

You can also use strsplit in combination with str2double(), but you would have to loop through each row in the table.
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’.

댓글 수: 2

Jeah that works. Thank you!
My pleasure!
If my Answer helped you solve your problem, please Accept it!
Adam Danz
Adam Danz 2019년 5월 15일
편집: Adam Danz 2019년 5월 15일
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.

이 질문은 마감되었습니다.

제품

질문:

2019년 5월 15일

마감:

2021년 8월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by