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

代码功能:

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']是完整的文件路径,注意中括号和引号!!


下面步骤根据文件中的变量具体格式进行调整,不做详细介绍。

4、s = eval(name);  将字符串转化为 变量名。



  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值