我有一个1000x5 double
矩阵:
79 735727,416666667 735727,452083333 735727,479166667 2
80 735727,441666667 735727,483333333 735727,506250000 9
81 735727,506944445 735727,534722222 735727,561111111 2
82 735727,541666667 735727,604861111 735727,648611111 9
83 735727,556944444 735727,572916667 735727,602083333 7
第2,第3,第4列是日期。我想用他们的日期时间表示替换他们的数字表示。我将这些列转换为:
arrive_date = datestr(data(:, 2))
arrive_date = datetime(arrive_date)
但是,无法将其分配回data's
列:
data(:, 2) = arrive_date
错误:从datetime转换为double时发生以下错误: 对于'datetime'类型的输入参数,未定义的函数'double'。要将日期时间转换为数字,首先减去日期时间原点,然后使用SECONDS,MINUTES,HOURS,DAYS或YEARS函数转换为数字。
答案 0 :(得分:1)
您不能将日期对象存储在双打数组中。如果要混合类型,则需要使用单元格数组。请参阅以下示例:
data = [79 735727.416666667 735727.452083333 735727.479166667 2;
80 735727.441666667 735727.483333333 735727.506250000 9];
arrive_date = datestr(data(:, 2))
arrive_date = datetime(arrive_date)
% Convert to cell array (each column is contained in a cell)
data = num2cell(data,1);
data{2} = arrive_date
输出显示新类型(第二个单元格是datetime
个对象的向量)。
data =
1×5 cell array
[2×1 double] [2×1 datetime] [2×1 double] [2×1 double] [2×1 double]