【数学建模】AIS自动船舶系统显示【含GUI Matlab源码 2559期】

该文介绍了一个MATLABGUI程序,功能包括通过定时器更新数据显示,读取.txt和.xls文件中的数据,并在界面上显示船只动态信息。程序包含OpeningFcn、OutputFcn以及多个回调函数,如listbox、edit和timer的创建与回调函数。
摘要由CSDN通过智能技术生成

在这里插入图片描述

⛄一、获取代码方式

⛄二、部分源代码

function varargout = AISshow(varargin)
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @AISshow_OpeningFcn, …
‘gui_OutputFcn’, @AISshow_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
global x;x=0;
global m;m=1;

function AISshow_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
h=timer; %定时器
handles.he=h; %将定时器放到全局变量中
%set(handles.he,‘ExecutionMode’,‘singleShot’); %定时器只执行一次,定一次时。
set(handles.he,‘ExecutionMode’,‘fixedRate’); %定时器,循环执行,循环定时。
set(handles.he,‘Period’,0.5); %定时器,定时间隔 1秒
set(handles.he,‘TimerFcn’,{@disptime,handles}); %定时器,定时会触发 TimerFcn 函数,定时函数(TimerFcn)触发用户自定义的函数(disptime函数)
start(handles.he); %开启定时器
guidata(hObject, handles);

function varargout = AISshow_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;

function listbox1_Callback(hObject, eventdata, handles)

function listbox1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,‘BackgroundColor’), get(0,‘defaultUicontrolBackgroundColor’))
set(hObject,‘BackgroundColor’,‘white’);
end

function boat_CreateFcn(hObject, eventdata, handles)
FileS={‘.txt’,'.txt’;‘.xls’,'不选.xls’;‘.xlsx’,'不选.xlsx’};
[filename,pathname] = uigetfile(FileS,‘读取动态信息’);
fileID = fopen([pathname,filename]);
C = textscan(fileID,‘%f %f %f %f %f %f %f %f %f %f %f’,‘Delimiter’,‘,’);
fclose(fileID);
set(gca,‘color’,‘none’);
FileS={‘.txt’,'.txt’;‘.xls’,'不选.xls’;‘.xlsx’,'不选.xlsx’};
[filename,pathname] = uigetfile(FileS,‘读取静态态信息’);
fileID = fopen([pathname,filename]);
J = textscan(fileID,‘%f %f %f %f %f %s %s %f %f %f %f %f %s’,‘Delimiter’,‘,’);
fclose(fileID);
[C1,C2,Jnum,Jstring,mychoice]=choose(C,J);
handles.C1=C1;
handles.C2=C2;
handles.Jnum=Jnum;
handles.Jstring=Jstring;
handles.mychoice=mychoice;
guidata(hObject,handles);

function hangji_CreateFcn(hObject, eventdata, handles)
axis off;
set(gca,‘color’,‘none’);

function map_CreateFcn(hObject, eventdata, handles)
axis off;
pic = im2double(imread(‘DL.jpg’));
imshow(pic);

function edit1_Callback(hObject, eventdata, handles)

function edit1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,‘BackgroundColor’), get(0,‘defaultUicontrolBackgroundColor’))
set(hObject,‘BackgroundColor’,‘white’);
end

function uitable1_CreateFcn(hObject, eventdata, handles)

function listbox2_Callback(hObject, eventdata, handles)

function listbox2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,‘BackgroundColor’), get(0,‘defaultUicontrolBackgroundColor’))
set(hObject,‘BackgroundColor’,‘white’);
end

function listbox3_CreateFcn(hObject, eventdata, handles)

function disptime(hObject, eventdata, handles)
set(handles.uitable3,‘Data’,num2cell(handles.mychoice));
global x;global m;
x = x+1;
set(handles.edit1,‘String’,[‘时间: ‘,num2str(x),’ 船号:’,num2str(m)]);
axes(handles.boat);
axis on;
%%
C1=handles.C1;
[longitude,latitude,lox,lax,COG,ROT,SOG,CSX]=selectInfor(C1,x);
hold off
%画第一条船
[x1,y1,x2,y2,xs,ys,xs1,ys1,xs2,ys2,xs3,ys3]=drawboat(longitude,latitude,COG,ROT,SOG,CSX);
plot(handles.boat,[longitude,x1],[latitude,y1],‘k’,[x1,x2],[y1,y2],‘k’,[xs1,xs2],[ys1,ys2],‘k’,…
[xs1,xs],[ys1,ys],‘k’,[xs2,xs],[ys2,ys],‘k’,[longitude,xs3],[latitude,ys3],‘–k’,lox,lax,‘or’);
axis(handles.boat,[121,122,38.5,39.5]);
set(handles.boat,‘color’,‘none’);
%画第二条船
axes(handles.hangji);
C2=handles.C2;
[longitude,latitude,lox,lax,COG,ROT,SOG,CSX]=selectInfor(C2,x);
[x1,y1,x2,y2,xs,ys,xs1,ys1,xs2,ys2,xs3,ys3]=drawboat(longitude,latitude,COG,ROT,SOG,CSX);
plot(handles.hangji,[longitude,x1],[latitude,y1],‘k’,[x1,x2],[y1,y2],‘k’,[xs1,xs2],[ys1,ys2],‘k’,…
[xs1,xs],[ys1,ys],‘k’,[xs2,xs],[ys2,ys],‘k’,[longitude,xs3],[latitude,ys3],‘–k’,lox,lax,‘or’);
axis(handles.hangji,[121,122,38.5,39.5]);
set(handles.hangji,‘color’,‘none’);
%%
if(m==1) C=C1;
else C=C2;
end
tableDataDT={‘信息标志码’;‘转发符’;‘MMSI号码’;‘航行状态’;‘转向速率ROT’;…
‘航速SOG’ ;‘位置精确度’ ;‘经度’;
‘纬度’ ;‘实际航向COG’;‘船首向’ };
set(handles.uitable1,‘Data’,[tableDataDT,mat2cell(C(x,:)',ones(11,1),1)]);

⛄三、运行结果

在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]李昕.MATLAB数学建模[M].清华大学出版社.2017
[2]王健,赵国生.MATLAB数学建模与仿真[M].清华大学出版社.2016
[3]余胜威.MATLAB数学建模经典案例实战[M].清华大学出版社.2015

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab领域

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值