MATLAB Answers

Converting a string Array into a Char array

조회 수: 1(최근 30일)
Leo Quintanar
Leo Quintanar 2017년 8월 17일
댓글: per isakson 2017년 8월 20일
Hello I have an array of strings called time, they all have the format: 22:39:04.502727 hours:minutes:seconds and I want to convert all of them into a number where its minutes.seconds, so how would I do that?
  댓글 수: 3
Walter Roberson
Walter Roberson 2017년 8월 18일
If you are using somwhere around R2015b-ish or later, then you can convert your times to datetime objects and use the datetime objects as your x coordinate, without needing to convert to integers.

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

답변(2개)

Sean de Wolski
Sean de Wolski 2017년 8월 17일
Use datetime and then change the Format to that which you desire.
dt = datetime('22:39:04.502727','InputFormat','HH:mm:ss.SSSSSS')
dt.Format = 'mm:ss'
  댓글 수: 1
Leo Quintanar
Leo Quintanar 2017년 8월 18일
I tried that command with a little twist:
dt = datetime(time(1),'InputFormat','HH:mm:ss.SSSSS)
because I have a cell array called time that is 200X1 I can't seem to convert it into a string array maybe its the way I have the text file read into matlab. Here'es the code that reads the text file:
[date, time, temp ] = textread('C:\Users\Leo\Desktop\data.txt','%s %s %f', 200)
is there a way to still use your method on that 200X1 array. My intentions are to graph time vs. temp.

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


per isakson
per isakson 2017년 8월 19일
편집: per isakson 2017년 8월 19일
"My intentions are to graph time vs. temp."
[date, time, temp ] = textread('h:\m\cssm\data.txt','%s %s %f', 8 );
dt = datetime( time, 'InputFormat','HH:mm:ss.SSSSSS' );
sdn = datenum( time, 'HH:MM:SS.FFF' ); % the old way
plot( sdn, temp ), datetick
plot( dt, temp )
where data.txt contains
2017-08-19 22:39:04.502727 26.404006797400000
2017-08-19 22:40:04.502727 26.404006797400000
2017-08-19 22:41:04.502727 26.404006797400000
2017-08-19 22:42:04.502727 26.404006797400000
2017-08-19 22:43:04.502727 26.404006797400000
2017-08-19 22:44:04.502727 26.404006797400000
2017-08-19 22:45:04.502727 26.404006797400000
2017-08-19 22:56:04.502727 26.404006797400000
produces two identical(?) diagrams. I guess, there are rounding errors.
You didn't mean
plot( temp, dt )
  댓글 수: 2
per isakson
per isakson 2017년 8월 20일
I run this example on R2016a. Which release do you use? datetime was "Introduced in R2014b"

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by