WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Compiler hat Problem mit Load???

 

2010ak1989
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 17.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.10.2012, 19:36     Titel: Compiler hat Problem mit Load???
  Antworten mit Zitat      
Hallo Leute,

etwas schrechkliches ist geschehen. Wie kann es sein, das bei einem mal kompilieren mit

Code:
mcc -m main_window.m


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:
function varargout = 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',   []);
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
% End initialization code - DO NOT EDIT


% --- 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

% Texte zuordnen
handles = assign_main(handles);

% Daten darstellen
show_financial(handles.tt,handles.balkendia,handles.verlaufdia,handles.year);

% Update handles structure
guidata(hObject, handles);


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.

Download
 Dateiname:  Ordnerstruktur.PNG
 Dateigröße:  10.39 KB
 Heruntergeladen:  474 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 01.10.2012, 22:19     Titel: Re: Compiler hat Problem mit Load???
  Antworten mit Zitat      
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');
if exist(File, 'file') ~= 2
  error('Cannot find file: %s', File);
end
handles.control = load('control.mat');   % <----- An der Stelle Striket die EXE
 

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.10.2012, 23:16     Titel:
  Antworten mit Zitat      
Hallo,

ich würde wirklich den Pfad hart codieren.

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
Code:

in den MATLAB-Code setzt und ihn so kompiliert und laufen lässt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
2010ak1989
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 17.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.10.2012, 20:41     Titel:
  Antworten mit Zitat      
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?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.10.2012, 21:45     Titel:
  Antworten mit Zitat      
Hallo,

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
Code:

stecken.

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).

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
2010ak1989
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 17.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.10.2012, 11:12     Titel:
  Antworten mit Zitat      
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. Very Happy 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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.10.2012, 11:26     Titel:
  Antworten mit Zitat      
Hallo,

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
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.