Hi,
I have a Table that has a column that was read from an excel sheet. The column should be numbers but is currently shown as strings like '3.14', '2.22', .... How to turn this column into doubles?
Thanks.
jennifer

 채택된 답변

Guillaume
Guillaume 2016년 10월 25일

7 개 추천

yourtable.columnname = str2double(yourtable.columnname);
is all that is needed.

댓글 수: 5

JFz
JFz 2016년 10월 25일
Tried this but got the same error. Thanks.
Guillaume
Guillaume 2016년 10월 26일
You're certainly not getting the same error at all and certainly not from str2double. str2double returns NaN on invalid input, it never errors.
So:
  1. What did you actually try?
  2. What is the exact error you got?
JFz
JFz 2016년 10월 27일
str2double works!
What can we do if str2double returns NaN?
Image Analyst
Image Analyst 2020년 11월 24일
The the column is either nans or characters or something that is not a number. So don't try to cast it to doubles then!

댓글을 달려면 로그인하십시오.

추가 답변 (3개)

Chaya N
Chaya N 2016년 10월 25일

0 개 추천

str2num('enter your string here');
Please note that this would only work for strings that contain numerical data

댓글 수: 7

JFz
JFz 2016년 10월 25일
Thanks. But my string is a table column: T.n. I keep getting error: Error using str2num (line 32) Requires string or character array input.
Chaya N
Chaya N 2016년 10월 25일
편집: Chaya N 2016년 10월 25일
If your table also has other columns with numbers in them, then you would most certainly get that error message. Try passing only that particular column into your str2num() function.
Also how is this table stored? Is it a cell array or a structure?
Guillaume
Guillaume 2016년 10월 25일
I recommend never using str2num and using str2double instead. The latter has two advantages:
  • it accepts cell arrays of string as inputs (so you can give it a whole table column as well)
  • it won't format your hard drive when passed the string 'rmdir(''C:\'', ''f'')' unlike str2num (Warning! don't try! str2num will happily execute any instruction in the string)
Chaya N
Chaya N 2016년 10월 25일
@Guillaume: rmdir!
A bit of an extreme thing to do (even by accident), wouldn't you say?
Guillaume
Guillaume 2016년 10월 26일
편집: Guillaume 2016년 10월 26일
Well, yes it's a bit extreme. The intent is to scare you.
The thing is: if you're using str2num to process any external input (from a prompt, a file, a webpage, etc.) you are asking for trouble. That input may be malicious, a prank, bad luck or invalid, str2num will not care and execute whatever instruction is in that string, with no warning.
Chaya N
Chaya N 2016년 10월 26일
I am learning new things here. Thank you.
JFz
JFz 2016년 10월 27일
str2double works!
Thank you so much!

댓글을 달려면 로그인하십시오.

Image Analyst
Image Analyst 2016년 10월 25일

0 개 추천

You could use xlsread() instead of readtable().
Priteshkumar Gohil
Priteshkumar Gohil 2021년 5월 12일
편집: Priteshkumar Gohil 2021년 5월 12일

0 개 추천

e.g. if you want to convert 1st column then following should work.
yourtable.(1) = str2double(t.(1));
or
yourtable.('COLUMN_TITLE') = str2double(t.('COLUMN_TITLE'));

댓글 수: 3

Hello I have csv data of 18 columns and want to convert into double
so instead of writing 18 str2double code how can I convert all the 18 columns in short line of code
Temp.x310_Ambient__C_ = str2double (Temp.x310_Ambient__C_);
Image Analyst
Image Analyst 2021년 7월 8일
@Arshey Dhangekar, start your own question and attach the csv file and code to import it into MATLAB, presumably with the readtable() function.
Arshey Dhangekar
Arshey Dhangekar 2021년 7월 8일
편집: Arshey Dhangekar 2021년 7월 8일
Hello I know basic thing. So only I want to know how can I convert all data into double. I attach csv file
Press=readtable ("inst0 138.221.155.184 12_10_2020 14_49_56 2.csv")
varfun(@class,Press,'OutputFormat','cell')
Output
Columns 1 through 8
{'double'} {'cell'} {'double'} {'double'} {'double'} {'double'} {'double'} {'double'}
Columns 9 through 16
{'double'} {'double'} {'double'} {'double'} {'double'} {'double'} {'double'} {'double'}
Columns 17 through 25
{'double'} {'double'} {'cell'} {'cell'} {'cell'} {'cell'} {'cell'} {'cell'} {'cell'}
Columns 26 through 29
{'cell'} {'cell'} {'cell'} {'double'}

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Data Type Conversion에 대해 자세히 알아보기

제품

태그

질문:

JFz
2016년 10월 25일

편집:

2021년 7월 8일

Community Treasure Hunt

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

Start Hunting!

Translated by