MATLAB Answers

How to find and replace the content of an array

3 ビュー (過去 30 日間)
JOAO LIMA
JOAO LIMA 2020 年 4 月 8 日
コメント済み: JOAO LIMA 2020 年 4 月 9 日
Hi guys. Sorry to bother you again, but I am new at Matlab.
I have this timestamp array:
'03/07/2019'
'03/07/2019 00:30:00'
'03/07/2019 01:00:00'
'03/07/2019 01:30:00'
'03/07/2019 02:00:00'
'03/07/2019 02:30:00'
And it goes for 10 days (480 values). The first cell of each day is like '03/07/2019', time is missing. I need to find this kind of cell
and add '00:00:00' to the cell content. So, the first cell should be '03/07/2019 00:00;00' instead of '03/07/2019'.
I applied the function cellfun. The length of the desirable cells is 10. I know I have to find the content of these cells and replace it,
but I am writing a loop. I wonder if there is an easier way to do that.
Thank you for your support!

採用された回答

Mohammad Sami
Mohammad Sami 2020 年 4 月 8 日
編集済み: Mohammad Sami 2020 年 4 月 8 日
% sometimestamp = {'03/07/2019' '03/07/2019 00:30:00'};
l = cellfun(@length,sometimestamp);
% or
% l = strlength(sometimestamp);
sometimestamp(l==10) = cellfun(@(x)[x ' 00:00:00'],sometimestamp(l==10),'UniformOutput',false);
  1 件のコメント
JOAO LIMA
JOAO LIMA 2020 年 4 月 9 日
Mohammad Sami , I implemented all the suggestions. ! You guys are great!

サインインしてコメントする。

その他の回答 (2 件)

Bhaskar R
Bhaskar R 2020 年 4 月 8 日
out = cellfun(@(x)datetime(x, 'Format','dd/MM/yyyy HH:mm:ss'), input_cell)
  1 件のコメント
JOAO LIMA
JOAO LIMA 2020 年 4 月 9 日
Bhaskar R , it worked fine!! Thanks a lot!

サインインしてコメントする。


Stephen
Stephen 2020 年 4 月 8 日
>> C = {'03/07/2019' '03/07/2019 00:30:00'};
>> X = cellfun('length',C)==10;
>> C(X) = strcat(C(X),' 00:00:00')
C =
03/07/2019 00:00:00
03/07/2019 00:30:00

Community Treasure Hunt

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

Start Hunting!

Translated by