В настоящее время я пытаюсь создать графический интерфейс для выбора файлов .m из папки и вывести эти данные на карту мира в графическом интерфейсе.Я знаю, что в MATLAB сейчас есть такие вещи, как App Designer, но мне все еще трудно.Во-первых, я не уверен, смогу ли я заставить карту мира отображать в пределах GUI и иметь наложения сверху на графике при выборе.У меня есть код, с которым я смог работать, который еще не оптимизирован для GUI.Мне просто нужна помощь, чтобы начать в правильном направлении.
Мои вопросы: 1) Возможно ли иметь карту мира с несколькими графиками в графическом интерфейсе с использованием MATLAB?2) Как я могу сделать это?Документация, предоставленная моим MATLAB, похоже, не решает вопрос о картах мира в GUI.
Мой текущий код без графического интерфейса указан ниже:
clear;
clc;
format long
% Specify folder where the files live
myFolder = 'C:\Users\J87662\Desktop\MAT Files';
% Check to make sure folder exists. Warns user if doesn't.
if ~isdir(myFolder)
errorMessage = sprintf('Error: The following folder does not exist:\n%s', myFolder);
uiwait(warndlg(errorMessage));
return;
end
% Get a list of all files in the folder with the desired file name pattern.
theFiles = dir(fullfile(myFolder, '*.mat')); % Using .mat as the desired file type.
% Number of files in the folder
n = numel(theFiles);
data = cell(1,n);
% Establish time-frame for reference
startDLG = inputdlg({'Year','Month','Date','Hour','Minute','Second'},'Enter starting time:', [1 60]); %
csStartIn = str2num(strjoin(startDLG, ',')); % Comma-separated input
% What we will use for finding where to begin plotting
StartDN = datenum(csStartIn);
endDLG = inputdlg({'Year','Month','Date','Hour','Minute','Second'},'Enter ending time:', [1 60]);
CSEndIn = str2num(strjoin(endDLG, ',')); % Comma-separated input
% What we will use for finding where to end plotting
endDN = datenum(CSEndIn);
% Figure with coastlines
figure
load coastlines
geoshow(coastlat, coastlon)
geoshow('landareas.shp', 'FaceColor', [.56 .93 .56]);
hold all
% Plotting GPX Data
for k=1:n
hold on
% Creates a colormap based on the amount of files we have
cmap = hsv(k);
% Read each file
data{k} = load(fullfile( myFolder, theFiles(k).name ));
baseFileName = theFiles(k).name;
fullFileName = fullfile(myFolder, baseFileName);
fprintf(1, 'Now reading %s\n', fullFileName);
endpoint = length(data{1,k}.lat);
% Read time from each route
routetime = data{1,k}.time;
% Establish format
dt = datetime(routetime,'InputFormat','yyyy-MM-dd''T''HH:mm:ss.SSS''Z');
% Convert into datenumbers
dn = datenum(dt);
% Contain values
[m, i] = min(abs(dn-StartDN));
[j, t] = min(abs(dn-endDN));
if (m == 0) || (j == 0)
% Plot data
plot(data{1,k}.lon(find(dn>=StartDN & dn<=endDN)), data{1,k}.lat(find(dn>=StartDN & dn<=endDN)), 'Color', cmap(k,:),'LineWidth', 2)
% Start marker
plot(data{1,k}.lon(1,find(dn==StartDN(1))), data{1,k}.lat(1,find(dn==StartDN(1))), 'o', 'LineWidth', 1.5);
plot(data{1,k}.lon(1,find(dn==endDN)), data{1,k}.lat(1,find(dn==endDN)), 'x', 'LineWidth', 1.5);
elseif (m > 0) || (j > 0)
% Plot data
plot(data{1,k}.lon(find(dn>=StartDN & dn<=endDN)), data{1,k}.lat(find(dn>=StartDN & dn<=endDN)), 'Color', cmap(k,:),'LineWidth', 2)
% Start marker
plot(data{1,k}.lon(1,i), data{1,k}.lat(1,i), 'o', 'LineWidth', 1.5);
plot(data{1,k}.lon(1,t), data{1,k}.lat(1,t), 'x', 'LineWidth', 1.5);
elseif (m > 0) || (j == 0)
hold all
end
end
hold on