Importing a signed integer value with a space

조회 수: 1 (최근 30일)
Sander Bovee
Sander Bovee 2020년 8월 12일
댓글: hosein Javan 2020년 8월 12일
Hello everyone,
I have a data file, i'm trying to import into MATLAB. Several columns are signed integers (see example below):
'+ 24.05' '+ 2.429' '+ 1.460' '+ 2.236'
'+ 24.05' '+ 2.429' '+ 1.459' '+ 2.237'
'+ 24.05' '+ 2.429' '+ 1.462' '+ 2.235'
I'm using the datastore function and then modifying the SelectedFormats setting to adjust to the format to correctly import the data.
I'm trying to use the signed integer values format ('%d') to import this data, however it does not reconize the values above as such. I believe its due the space between the sign and the integer.
Is there a Optional operator(s) that i can add to ignore the space? Or am i perhaps wrong in my assumption that the space is the issue?

채택된 답변

hosein Javan
hosein Javan 2020년 8월 12일
if your data are all positive, then you can ignore plus sign. and your data is not integer use single or double precion. here's a code that imports the data from a text file to matrix.
fileid = fopen('scan1.txt')
c = textscan(fileid,'''+ %f'' ''+ %f'' ''+ %f'' ''+ %f''')
c = cell2mat(c)
c =
24.0500 2.4290 1.4600 2.2360
24.0500 2.4290 1.4590 2.2370
24.0500 2.4290 1.4620 2.2350
  댓글 수: 4
Sander Bovee
Sander Bovee 2020년 8월 12일
Thanks! I've just imported it has a character vector and used your cellfun to converted it to doubles.
That works and is a whole lot less complicated that my previous IF statement solution. Thank you both!
hosein Javan
hosein Javan 2020년 8월 12일
don't mention it. you can even store the matrix data in a .mat file afterwards so you won't need to convert string to number every call of your script or function.

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Data Type Conversion에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by