clear; close all; clc;
%读取数据
[inputfile,PathName] = uigetfile({'*.*';'*.xls';'*.csv';'*.csv'},'选择目标文件夹')
%获取输入文件的路径
Nameall=strcat(PathName,inputfile)%将路径和文件名拼接
Position=strfind(Nameall,'.xls'); %判断文件是不是xls文件
Filetype=isempty(Position); %判断文件是不是xls文件
if Filetype==1
data=csvread(Nameall,1,1); %读取csv文件去掉第一行第一列的标签和波数
else
[num,txt,raw] = xlsread(Nameall)%读取xls文件
[m1,n1]=size(num)
data=num(1:m1,1:n1)
end
%数据输入
x=data(2:end,1);
y=data(2:end,2);
z=data(2:end,3);
size = sqrt(length(x));
stepx = (max(x) - min(x)) / size;
stepy = (max(y) - min(y)) / size;
[xq,yq]=meshgrid(min(x):stepx:max(x),min(y):stepy:max(y));
[X,Y,Z]=griddata(x,y,z,xq,yq,'cubic');
figure('position', [300 100 960 640])
surf(X,Y,Z)
shading flat
colormap("turbo");
grid on
set(gca,'TickDir','out');
colorbar;
set(gca,'FontSize',10);
view(90,90)
示例成图: