die 'load-Funktion' läuft und bei einem anderen mal geht es nicht. Ich mein ich habe schonmal irgendwo gesehen, das es da mal Probleme gab oder so. Ich finde es nur nicht mehr und ich weiß nicht was ich noch bei der Suche eingeben soll. Ich führe mal unten auf, was sache ist.
Code:
functionvarargout = main_window(varargin) % MAIN_WINDOW MATLAB code for main_window.fig % MAIN_WINDOW, by itself, creates a new MAIN_WINDOW or raises the existing % singleton*.
%
% H = MAIN_WINDOW returns the handle to a new MAIN_WINDOW or the handle to % the existing singleton*.
%
% MAIN_WINDOW('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in MAIN_WINDOW.M with the given input arguments.
%
% MAIN_WINDOW('Property','Value',...) creates a new MAIN_WINDOW or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before main_window_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to main_window_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help main_window
% Last Modified by GUIDE v2.5 26-Sep-2012 18:41:17
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @main_window_OpeningFcn, ...
'gui_OutputFcn', @main_window_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
ifnargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
% --- Executes just before main_window is made visible. function main_window_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to main_window (see VARARGIN)
% Ordner zum Suchpfad hinzufügen if ~isdeployed
addpath(genpath(pwd)) end
% Choose default command line output for main_window
handles.output = hObject;
% Kalendar erstellen
create_calendar(handles.calendar_panel);
% Kontrolldatei laden
handles.control = load('control.mat'); % <----- An der Stelle Striket die EXE
% Verfügbare Jahre ermitteln
datas = dir('database\*.mat');
handles.control.available_years={datas.name}';
% Jahresdatei laden try
c = load(strcat('database/',handles.control.active_year));
handles.year = c.y;
% Öffnungscounter erhöhen
handles.year.openings = handles.year.openings + 1;
catch msgbox('Es wurde leider keine Datei geladen!') end
Ich hoffe ihr könnt mich auf schon ähnlich Probleme mit Lösung weiterleiten oder mir hier direkt die Lösung des Problems posten.
Danke im Vorraus
Ordnerstruktur.PNG
Beschreibung:
Das ist der Ordner in der normal unter MATLAB gearbeitet wird. Da funktioniert auch alles einwandfrei. Nur beim kompilieren, gibt es Probleme beim Laden.
Verfasst am: 01.10.2012, 22:19
Titel: Re: Compiler hat Problem mit Load???
Hallo 2010ak1989,
Was genau bedeutet "Matlab streikt" und "geht nicht"? Je genauer Du beschreibst, was passiert, desto weniger müssen wir raten.
Wie wäre ein Test, ob die Datei existiert und ein absoluter File-Name:
Code:
File = fullfile(cd, 'control.mat');
ifexist(File, 'file') ~= 2 error('Cannot find file: %s', File);
end
handles.control = load('control.mat'); % <----- An der Stelle Striket die EXE
Vermutlich wird durch das Starten der .EXE die MCR im Standard-Startverzeichnis von MATLAB und nicht in dem Verzeichnis, in dem die .EXE liegt, gestartet.
Das sollte sich aber leicht herausfinden lassen, in dem man ein
Cool danke für den Hinweis. Ich hab den Pfad jetzt hart codiert. Was mache ich denn, wenn ich den ganzen Projektordner verschiebe, wie hole ich mir denn dann den Pfad, wo die control.mat steht?
ich habe es gerade getestet, und bei mir startet die MCR in dem Verzeichnis, in dem sich die .EXE befindet. Hast du vielleicht eine startup.m, in der das Verzeichnis gewechselt wird? Den Teil würde ich ggf. in ein
Ansonsten sehe ich hier keine direkte Möglichkeit. Stattdessen würde ich die control.mat beim Kompilieren einbinden (Option -a von mcc, oder über deploytool).
Das war äußerst hilfreich, danke für den Tipp mit der startup.m darauf wär ich nie gekommen. Ehrlich gesagt, wenn ich drüber nachdenke klappt es auch nicht mehr seitdem ich die startup eingerichtet habe. da hab ich das mit der startup gesehen, weil mich immer das wechseln genervt hat ja und dann hat das auswirkungen noch auf alles andere. Ich finde MATLAB hammer mächtig und sehr gut, aber manchmal ein bisschen zu viel des Guten.
um beim "normalen" Starten von MATLAB in einem anderen Verzeichnis anzufangen, gibt es die Möglichkeit, bei der Desktop-Shortcut unter Eigenschaften --> Verknüpfung "Ausführen in" auf den entsprechenden Pfad zu setzen.
Du kannst ja mal versuchen, ob es dann mit dem Kompilieren und Starten der EXE im "richtigen" Verzeichnis trotzdem klappt.
Grüße,
Harald
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.