matlab guide 打开excel并对其中数据进行处理

最近又用到matlab做GUI,之前学的全忘了,还好两年前留了大实验源码。
这次我来分析如何通过matlab处理excel数据

实验结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对excel处理的效果:
在这里插入图片描述

实验原理

打开excel回调函数

function openexc_Callback(hObject, eventdata, handles)
[filename, pathname] = uigetfile({'*.xlsx';'*.slx';'*.mat';'*.*'},'File Selector');
set(handles.edit3,'string',[pathname,filename]);

excel文件内容
在这里插入图片描述
打开denggaoxian_Callback回调函数

这个看似画的图很厉害,其实直接调用的matlab的库函数。

function denggaoxian_Callback(hObject, eventdata, handles)

namee=get(handles.edit3,'string')
temp1=xlsread(namee,'sheet1');
x=temp1(:,2);y=temp1(:,3);%数据格式均为列向量
alti=temp1(:,4);area=temp1(:,5);
uij=min(x):(max(x)-min(x))/100:max(x); 
vij=min(y):(max(y)-min(y))/100:max(y);

%a:c:b表示[a,a+c,……,a+n*c],其中n=fix((b-a)/c)

[xi,yj]=meshgrid(uij,vij);
z2=griddata(x,y,alti,xi,yj,'natural');%插值法确认未知的z
figure(1);
mesh(xi,yj,z2)%曲面图

colorbar;%显示图例
figure(2);
[C,h]=contour(xi,yj,z2,16);
clabel(C,h)


hold on;
for i=1:length(area(:,1))
	if(area(i)==1)
	h1=plot3(x(i),y(i),alti(i),'wo');
	elseif(area(i)==2)
	h2=plot3(x(i),y(i),alti(i),'yo');
	elseif(area(i)==3)
	h3=plot3(x(i),y(i),alti(i),'go');
	elseif(area(i)==4)
	h4=plot3(x(i),y(i),alti(i),'mo');
	elseif(area(i)==5)
	h5=plot3(x(i),y(i),alti(i),'bo');
	end
end
hold off;
title('等高线图');
% hObject    handle to denggaoxian (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

首先看一下matlab对矩阵的处理:
temp1=xlsread(namee,‘sheet1’);这句话就把excel的sheet1存到矩阵里了,对矩阵操作即可对excel数据操作。

>> A=[1 2 3;4 5 6]

A =

     1     2     3

     4     5     6

b=A(i, :)表示把矩阵A的第i行存入b

>> b=A(1,:)

b =

     1     2     3

b=A( :,j)表示把矩阵A的第j列存入b

>> b=A(:,1)

b =

     1

     4

b=A(J :K)表示把矩阵A中[A(J),A(J+1),…,A(K)]这些元素存入b中

>> b=A(3:5)

b =

     2     5     3

b=A(:,c:d)表示把矩阵A的第c到第d列存入b中,当然c,d大于A的列数则出错(b=A(c:d,:)表示取行)

>> A=[1 2 3;4 5 6;7 8 9]

A =

     1     2     3

     4     5     6

     7     8     9
     
>> b=A(:,2:3)

b =

     2     3

     5     6

     8     9

a:c:b表示[a,a+c,……,a+n*c],其中n=fix((b-a)/c)

>> A=1:3:11

A =

     1     4     7    10

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:程序猿惹谁了 设计师:我叫白小胖 返回首页
评论 1

打赏作者

_jym

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值