2

我曾经datestr转移732154.87377314826-Jul-2004 20:58:14,但是当我将它输出到.csv文件时,它将是一个1*20数组...,但我想要将它存储在一个1*1数组中,我该怎么办?

有没有简单的方法可以转移26-Jul-2004 20:58:142004/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

4

2 回答 2

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','')
于 2012-05-16T14:13:58.500 回答
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'))
于 2012-05-16T14:12:39.870 回答