假如Excel中存在三列数据需要导入Matlab中。
保证该Excel文件与Matlab程序在同一目录下。
function [time, voltage, current] = test(filename)% 读取Excel文件并提取时间、电压、电流数据% 输入参数:% filename: Excel文件名(需包含路径,如'C:\data\TT.xlsx')% 输出参数:% time: 时间列数据(对应Excel中的"time"列)% voltage: 电压列数据(对应Excel中的"voltage"列)% current: 电流列数据(对应Excel中的"current"列)% 检查文件是否存在if ~exist(filename, 'file')error('文件 "%s" 不存在,请检查路径或文件名。', filename);end% 读取Excel数据trydata = readtable(filename);catcherror('无法读取文件 "%s",请确认文件格式是否为Excel。', filename);end% 检查列是否存在requiredColumns = {'time', 'voltage', 'current'}; % 注意列名必须完全匹配missingColumns = setdiff(requiredColumns, data.Properties.VariableNames);if ~isempty(missingColumns)error('缺失必要列: %s。请检查Excel列名。', strjoin(missingColumns, ', '));end% 提取数据列time = data.time;voltage = data.voltage; % 注意:Excel中的列名必须为"volage"current = data.current;
end
执行主程序即可导入:
%% 数据加载(假设每个SOC点对应一个脉冲段)[t, V, I] = test('TT.xlsx'); % 加载当前SOC点数据
进一步,为了方便,可采用元胞数组打包。
%% 数据加载(假设每个SOC点对应一个脉冲段)[t, V, I] = test('TT.xlsx'); % 加载当前SOC点数据data = {t, V, I};
在该界面内ctrl+S 另存为成matlab数据文件,之后可直接使用。
假如要使用元胞数组里电压数据:
voltage = data{2}(:,1);