机器学习(matlab版)| lesson 2 data存储格式

参考:B站 爱学习的布尔玛转载的学习教程

Image

包括:GIF JPG TIFF PNG HDF FITS BMP

A=imread(FILENAME,FMT):读取灰度图像或者彩色图像

INFO=imfinfo(FILENAME,FMT):返回一个图像信息

%读取显示图像,并显示图像信息
imdata=imread('D:\desktop\matlab_code\ML\另一个课\L3\dataset\Mass\00029579_005.png');
figure;
imshow(imdata,[],'border','tight');
info=imfinfo('D:\desktop\matlab_code\ML\另一个课\L3\dataset\Mass\00029579_005.png')

机器学习(matlab版)| lesson 2 data存储格式_第1张图片

一些常用函数: 

机器学习(matlab版)| lesson 2 data存储格式_第2张图片

Datastore

适用于读取大量data/data存在结构情况下适用。

DS=datastore(LOCATION)  LOCATION一般是一个资料夹

机器学习(matlab版)| lesson 2 data存储格式_第3张图片

%datastore
dirname='D:\desktop\matlab_code\ML\另一个课\L3\dataset';
ds=datastore(dirname,'type','image',...%data的路径
                        'IncludeSubfolders',true,...%是否有子资料夹
                        'LabelSource','foldernames',...%文件夹名字作为data的标签,监督学习
                        'ReadFcn',@customreader);%读取,后面是自己定义的函数名字

机器学习(matlab版)| lesson 2 data存储格式_第4张图片

 更多函数:

机器学习(matlab版)| lesson 2 data存储格式_第5张图片

 

ds.Files%文件路径
ds.Labels%文件标签
ds.countEachLabel%统计每种标签数目
shuffle_ds=ds.shuffle%打乱数据
shuffle_ds.Labels
%ds.ReadSize=5;%改变read一次读取的数目

[img,info]=ds.read;%info是原始数据的信息
figure;imshow(img);
imgall=ds.readall;
%换一个类型
ds1=datastore("Data_Entry_2017.csv",'type','tabular');%读取tabular类型的数据
ds1.VariableNames%数据的表头
ds1.ReadSize%一次read读取的数据量
tabledata=ds1.read;%读取20000个数据
tabledata.PatientAge;%用户年龄那一列的数据
tabledata(:,3:4);%类似于数据切片
tabledata(:,3:4).Variables%3 4列的数值,当3 4 列中有非数字值时会报错
tabledata.Properties.VariableNames%table的数据表头
tabledata.Properties.VariableUnits%table的数据单位

变量tabledata里的数据,类似excel

机器学习(matlab版)| lesson 2 data存储格式_第6张图片

Tables

常用函数

机器学习(matlab版)| lesson 2 data存储格式_第7张图片

 

一个实例

有一些天气数据

机器学习(matlab版)| lesson 2 data存储格式_第8张图片

 想要比较1993年和2015年温度稳定情况

1 利用datastore读取数据

2 筛选出2015和1993年的温度数据

3 对数据进行FFT,观察频谱成分

其中,FFTEnergy是自己定义好的,进行快速傅里叶变换的函数,返回频率值和频率幅值

代码

%一个实例,天气资料,研究气候是否稳定,可以看其频谱,温度频率来描述温度变化情况
%FFT 要比较1993 2015年
tableds=datastore('.\Weather','type','tabular');
tableds.VariableNames %看看数据表头的名字
tableds.SelectedVariableNames={'EST','MaxTemperatureF'};%选取两列我们需要的数据
tableds.preview%展示几行,看看对不对

Alltemp=tableds.readall;%全部加载进来
datainfo=Alltemp{:,1};%年月份数据
y=year(datainfo);%提取年份
%找到年份对应的索引
ind_1993=find(y==1993);
ind_2015=find(y==2015);
%保存对应年份的温度信息
tempdata=Alltemp{:,2};
temp1993=tempdata(ind_1993);
temp2015=tempdata(ind_2015);
%绘出时域信息
figure;
subplot(121);plot(1:365,temp1993,'b',1:365,temp2015,'r');grid on;
title("Temperature");xlabel("Days");ylabel("Degree");legend('1993',"2015");
%进行FFT,绘出频域信息
SampTime=86400;
[p1993,f1993]=FFTEnergy(temp1993',SampTime);
[p2015,f2015]=FFTEnergy(temp2015',SampTime);

subplot(122);plot(f1993,p1993,'b',f2015,p2015,'r');set(gca,'YScale','log');grid on;
title("FFTdata");xlabel("Frequency(rad/s)");ylabel("Magnitude");legend('1993',"2015");

绘图结果

机器学习(matlab版)| lesson 2 data存储格式_第9张图片

你可能感兴趣的:(机器学习,matlab,算法,开发语言)