I have this table imported from a csv file after using
datos = readtable(filename)
fechaDef = datos{:,{'FECHA_DEF'}}
fechaDef =
{'9999-99-99'}
{'6/26/2020' }
{'9999-99-99'}
{'9999-99-99'}
{'9999-99-99'}
....
And i want to convert it to datetime format, i want to have the '9999-99-99' as NaT
What I'm doing is
fechaDef = datos{:,{'FECHA_DEF'}} %NaT if not a Datetime
fechaDef = table2array(fechaDef);
fechaDef = datetime(fechaDef,'InputFormat','MM/dd/yyyy')
I can write those commands and execute them successully at the command window.
But when writing them in a script i get the following error:
Can you tell me what am I doing wrong?
Thanks in advance!

댓글 수: 3

Not without a sample test case that illustrates the problem can run here -- the above code snippet by itself works in a script the same as the command line
>> testit
fechadef =
5×1 datetime array
NaT
26-Jun-2020
NaT
NaT
NaT
>>
>> type testit
fechaDef = [...
{'9999-99-99'}
{'6/26/2020' }
{'9999-99-99'}
{'9999-99-99'}
{'9999-99-99'}];
fechadef=datetime(fechaDef,'InputFormat','MM/dd/yyyy')
>>
There's something else gone wrong in the script before there that is the cause of the problem but we can't see or run the script to be able to tell what that might be.
Pull out the pieces and make test code by adding more and more until you find the culprit...
DVR
DVR 2020년 7월 15일
Thanks for your fast answer dpb.
Attached you can find my script, in fact i'm getting a warning but dont know if that is related with the error.
Also attached is the .csv file i'm using.
data = cat(1, image_patches,labels);
That code is overwriting all of data each iteration.
It looks to me as if data will not be a vector, but I do not seem to be able to locate any hellopatches() function so I cannot tell what shape it will be. As you are not doing imresize() I also cannot be sure that all of the images are the same size, so I cannot be sure that data will be the same size for each iteration. Under the circumstances you should be considering saving into a cell array.
Note: please do not post the same query multiple times. I found at least 9 copies of your query :(

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

 채택된 답변

Steven Lord
Steven Lord 2020년 7월 15일
fechaDef = ...
[{'9999-99-99'};
{'6/26/2020' };
{'9999-99-99'};
{'9999-99-99'};
{'9999-99-99'}]
fechaDef2 = replace(fechaDef, '9999-99-99', 'NaT')
dt = datetime(fechaDef2, 'InputFormat', 'MM/dd/yyyy')

댓글 수: 2

DVR
DVR 2020년 7월 15일
Absolutetly right, replace was the function i was missing, thank you Steven!
dpb
dpb 2020년 7월 15일
So what's the difference that DVR was finding, Steven?
Why isn't datetime returning NaT on its own (presuming it really is failing)?
That seems like retrogression if is newly-introduced behavior since R2019b which works as expected here, anyways.
I was more expecting it to barf on the "MM" format string with a '6/26/2020' datestring but it seems ok with that now. My recollection is that would fail in earlier releases but I didn't go back to try to test.

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

추가 답변 (0개)

카테고리

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

제품

릴리스

R2019b

질문:

DVR
2020년 7월 15일

댓글:

2020년 7월 15일

Community Treasure Hunt

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

Start Hunting!

Translated by