您的位置:首页 > 编程语言 > MATLAB

Matlab实用代码——定位文件位置,自动导入文件

2018-01-29 16:33 417 查看
代码功能:
1、弹出文件夹选择对话框,选择文件所在位置。
2、加载指定名称文件。
例子:
加载NASA锂电池数据集,文件为B0005、B0006、B0007、B0018.
每个文件下面都是一个同名的结构体,该结构体下是一个名为cycle的结构体;cycle结构体包含很多字段。
目标是找到type字段中所有‘discharge’对应data结构体中的Capacity数据。
数据集来源:
https://ti.arc.nasa.gov/tech/dash/groups/pcoe/battery-prognostics/algorithms/

或 https://download.csdn.net/download/ckzhb/10285027
源代码:
http://download.csdn.net/download/ckzhb/10229911

数据集结构如下图:







function [data] = loadBatteryData(datasetNumber)
% 加载锂电池数据集
% Input:
% datasetNumber-两位数即 05 06 07 18
% Output:
% data - 电池容量
% Usage:
% 选择锂电池数据集mat文件所在的文件夹;
R = uigetdir('*.mat','Choose battery data'); %选择数据集所在文件夹
if datasetNumber<10
name = ['B000' num2str(datasetNumber)];
load([R '\B000' num2str(datasetNumber) '.mat'],name);
end
if datasetNumber>9
name = ['B00' num2str(datasetNumber)];
load([R '\B00' num2str(datasetNumber) '.mat'],name);
end
s = eval(name);
temp = s.cycle;
for i =1:length(temp)
if strcmp(temp(i).type, 'discharge')
data(i) = temp(i).data.Capacity;
end
end
index = find(data==0);
data(index)=[];

end
代码详解:
1、R = uigetdir('*.mat','Choose battery data'); 
uigetdir函数得到指定文件类型(第一个参数)的文件夹位置。第二个参数是对话框标题。返回字符串。

2、name = ['B000' num2str(datasetNumber)];    构造加载的文件的名字,是一个字符串格式
3、load([R '\B000' num2str(datasetNumber) '.mat'],name);  
加载mat文件,[R '\B000' num2str(datasetNumber) '.mat']是完整的文件路径,注意中括号和引号!!

下面步骤根据文件中的变量
4000
具体格式进行调整,不做详细介绍。
4、s = eval(name);  将字符串转化为 变量名。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐