我使用datestr
将732154.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
答案 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'))