MATLAB导入Excel数据

发布于:2025-03-28 ⋅ 阅读:(25) ⋅ 点赞:(0)

 假如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数据
    try
        data = readtable(filename);
    catch
        error('无法读取文件 "%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);