MATLAB实战教程一:基于Excel数据绘制光谱反射率曲线(内含配套练习数据)
- 2026-09-20 16:32:27
MATLAB实战教程一:基于Excel数据绘制光谱反射率曲线(内含配套练习数据)1.利用MATLAB绘制光谱曲线的实现代码如下: 


实验主要内容:读取Excel中的高光谱数据,提取光谱反射率信息,并绘制400–2400 nm范围内的光谱曲线,以便观察各样本光谱的形态、变化趋势和噪声情况。
%%1.读取Excel文件:使用readtable函数读取Excel文件,将其存储为一个表格(table)类型变量T。filePath='F:\Desktop\示例数据.xlsx';T=readtable(filePath);%%2.提取光谱反射率数据%{}用来提取表格中的数据矩阵(去掉表格属性,只保留数值)。%2:end(行方向):表示从第二行到最后一行所有样本(第1行通常是表头或非光谱数据)。%2:end(列方向):列表示从第二列到最后一列,提取所有光谱波段数据。%结果spectra是一个数值矩阵:行=样本数,列=光谱波段数。spectra=T{2:end,2:end};%%3.构建波长向量(400–2400 nm)%size(spectra,2)获取矩阵spectra的列数,即光谱的波段数。numBands=size(spectra,2);%生成一个从400 nm到2400 nm的波长向量,长度=波段数,给每一列光谱数据分配对应的波长。wavelength=linspace(400,2400,numBands);%%4.绘制原始光谱曲线%新建一个图形窗口,用于绘制图像。figure;%spectra'表示矩阵转置,将行变为列,每一列代表一条光谱曲线。%'LineWidth',0.8设置曲线的线宽为0.8。plot(wavelength,spectra','LineWidth',0.8);grid on;%%5.图形设置%设置X轴标签为“Wavelength(nm)”,字体为新罗马字体,大小为12并加粗显示。xlabel('Wavelength(nm)','FontSize',12,'FontName','Times New Roman','FontWeight','bold');%设置Y轴标签为“Reflectance”,字体为新罗马字体,大小为12并加粗显示。ylabel('Reflectance','FontSize',12,'FontName','Times New Roman','FontWeight','bold');%设置图形标题,字体为新罗马字体,大小为13并加粗显示。title('Spectral Reflectance Curves','FontSize',13,'FontName','Times New Roman','FontWeight','bold');%限制x轴显示范围,确保只显示目标波段区间xlim([400 2400]);%设置坐标轴字体为新罗马字体,大小为11并加粗,使数字和刻度清晰可读。set(gca,'FontSize',11,'FontName','Times New Roman','FontWeight','bold');%% 设置横轴刻度为400 nm间隔xticks(400:400:2400);%%6.保存图形到F盘桌面%定义图像保存路径savePath='F:\Desktop\Spectral Reflectance Curves.png';%gcf:获取当前图形窗口%saveas:将当前图形保存为指定路径的文件saveas(gcf,savePath);
2.出图效果(仅供参考)

3.温馨提示
直接复制本代码在MATLAB运行的话在代码第30行可能会有一个错误,具体如下图所示:

解决办法:将代码第30行400和2400之间的空格删掉重新敲一个空格即可!

4.数据获取方法
本实验练习数据免费分享,数据获取方式如下:
①关注微信公众号:王学长的知识店铺
②在公众号后台聊天框回复关键字
202600201
即可获得
希望能够帮助到你,一起加油(ง •_•)ง
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。