当我使用datestr时,如何在1 x 1数组中显示日期?

时间:2012-05-16 13:26:31

标签: matlab

我使用datestr732154.873773148转移到26-Jul-2004 20:58:14,但当我将其输出到.csv文件时,它将是1*20数组...,但是我想要的是将它存储在1*1数组中,我该怎么办?

是否存在将26-Jul-2004 20:58:14转移到2004/07/26 20:58:14的简单方法?

感谢:)

data = csvread('4.csv');
date = data(:, 1);
loc = data(:, 2);
record_num = size(loc, 1);

result = zeros(record_num, 2);
new_date = datestr(date);
csvwrite('4_res.txt', new_date);

我想要的是什么 2004/07/26 20:58:14

但它会 2,0,0,4,/,0,7,/,2,6, ,2,0,:,5,8,:,1,4

2 个答案:

答案 0 :(得分:4)

为了使用2004/07/26 20:58:14格式的日期,您可以使用:

new_date = datestr(date,'mm/dd/yy HH:MM:SS');

要编写仅包含1x1单元格的csv文件,您可以使用dlmwrite将空字符串作为分隔符:

dlmwrite('4_res.txt',new_date, 'delimiter','')

答案 1 :(得分:3)

你的问题是,对于Matlab,字符串是一个字符数组。正如您所发现的那样,csvwrite会写下您的字符串'作为整数数组(字符串中字符的ASCII代码)。我不认为有办法迫使csvwrite采取不同的行为。

我认为您必须使用fprintf,就像这样

fprintf(fid,datestr('26-Jul-2004 20:58:14'))

获取您想要的输出。在这里,fid当然是您打开的文件句柄(使用fopen)并启用了写入权限。至于以您想要的格式编写日期字符串,请尝试:

fprintf(fid,datestr('26-Jul-2004 20:58:14', 'yyyy/mm/dd HH:MM:SS'))