用到matlab的table很好用。经常涉及放入数据,读取数据,下面总结常用的知识点。
1. 把不同数据类型放到同一个表中
想把时间类型和数值类型放到统一table中。困扰的点是,我已经知道了表头名称, 如何批量的为表头命名,如果是直接把时间类型+数值数组放到一起,结果是所有数值类型公用一个表头。
代码如下:
tableTitleName={ '径流', '降水', '温度'};
startTime=datetime(2014, 1, 1, 0, 0, 0, 'Format','uuuu-MM-dd HH:mm:ss');%开始时间
endTime =datetime(2014, 1, 31,0, 0, 0, 'Format','uuuu-MM-dd HH:mm:ss');%结束时间
timeData = ( startTime:hours(24):endTime)'; %生成间隔为24小时的矢量数组
myTable=table(timeData,'VariableNames',{'时间'}) %直接放数据,并指定表头
myTable.Properties.VariableNames(1)={'Time'};% 把第一列表头改成了Time
myTable=addvars(myTable,zeros(31,1), 'NewVariableNames','aa' );%追加了新的一列aa,数据为0
myTable=addvars(myTable,zeros(31,1), 'NewVariableNames',tableTitleName{1} );%追加降水列。
% 动态循环追加也是一样
for i=2:2
myTable=addvars(myTable,zeros(31,1), 'NewVariableNames',tableTitleName{i} );
end
% 也可是这样动态追加列,并命名
for i=3:3
myTable.( string(tableTitleName{i}) )=rand(31,1)*10;
end
% 引用数据
myTable(1,5); %直接引用第1行第5列的数据
myTable.("温度");%直接引用这一列