实用指南站
霓虹主题四 · 更硬核的阅读氛围

Matlab变量导入导出实用技巧:从Excel到.mat文件一气呵成

发布时间:2026-02-11 02:50:22 阅读:8 次

在日常数据分析或工程计算中,经常遇到这样的场景:同事发来一个Excel表格,里面是实验测得的温度、压力数据;或者自己跑完一段仿真,想把结果保存下来下次接着用。这时候,Matlab的输入输出功能就不是可选项,而是刚需。

读取外部数据:不止load那么简单

很多人一上来就用 load('data.mat'),但实际工作中,原始数据更多藏在Excel、CSV甚至文本里。比如要读Excel里的两列数据:

data = readmatrix('sensor_log.xlsx');  % 自动识别数字,跳过表头
% 或者更灵活地用readtable
tbl = readtable('sensor_log.xlsx', 'ReadVariableNames', true);

如果Excel里混着文字和数字,readtable能自动分列并保留变量名,比老式xlsread省心不少。

保存变量到本地:选对格式很关键

调试阶段常用 save mydata.mat a b c,把几个变量打包存成.mat文件——这是Matlab原生格式,速度快、精度全,适合内部流转。但如果要交给没装Matlab的同事看,就得换路子:

writematrix(A, 'output.csv');          % 矩阵直接写入CSV
writematrix(round(B*100)/100, 'report.csv', 'Delimiter', ';');  % 控制小数位+分号分隔

注意:中文路径容易出错,建议先用cd切到英文目录下操作,避免乱码或报错。

跨平台交换:小心数据类型陷阱

从Python传来的.npy文件,或从R导出的.RData,Matlab不能直读。但常见格式有折中方案:让对方先导出为CSV,再用readmatrix加载;或者统一用HDF5——Matlab支持h5write/h5read,大数组、多维结构都能稳稳接住。

一个小技巧:临时变量快速导出

调试时想立刻看某变量长啥样?不用点工作区,一行搞定:

disp(['最大值:', num2str(max(x))]);
fprintf('前5个值:%f %f %f %f %f\n', x(1:5));

要是想截图存档,exportgraphics(gca, 'plot.png')比手动截图准多了。