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} );
% 也可是这样动态追加列,并命名
for i=3:3
myTable.( string(tableTitleName{i}) )=rand(31,1)*10;
% 引用数据
myTable(1,5);
%直接引用第1行第5列的数据
myTable.("温度");
%直接引用这一列
上一次的训练中一道数据处理的题目,五千来号数据,作为
matlab
新手这怎么搞,后面发现可以导入,但是问题来了,我根本提取不出那些数据啊(苦恼)。后面发现这些数据从excel导入进去后是
table
类型的,然后去找了相关资料,终于有点会使了,于是记录整理一下,下次忘了还可以再看看,嘻嘻~
table
简介
MATLAB
引入了这个新的数据类型,为的就是更好的用来做统计,就可以理解成一个
表
(类似统计 工具箱中的dataset),可以存放各种类型的容器。第一行就作为
表头
,如果取的
表头
符合
matlab
的命名规则
path = 'F:\LYF\data\'; %文件夹路径
Filesname = dir(strcat(path,'*.xls')); %找到当前路径文件夹下的以.xls为后缀的文件名
Length = length(Filesname ); %计算文件夹里xls文档的个数
for i = 1:1 %批量读取文件的内容并保存
A = xlsread(strcat(path,Filesname (i).name),'data'.
MATLAB
—
table
的常用用法
1. T =
table
(var1,…,varN)
LastName = {'Sanchez';'Johnson';'Li';'Diaz';'Brown'};
Age = [38;43;38;40;49];
Smoker = logical([1;0;1;0;1]);
Height = [71;69;64;67;64];
Weight = [176;163...
后来才知到, 在赋值给
表
格的时候, 不能再对
表
格内的参数进行操作, 否则就当成值而失去了disRatio的变量名字了. 改成这样:
disRatio=(1.2:0.2:3.0)';
energyRatio=zeros(10,5);
libhogweed-6.dll libnettle-8.dll screen_retriever_plugin.dll window_manager_plugin.dll NeoMathEn