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

Strukturen

 

neuer_08

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.04.2008, 16:54     Titel: Strukturen
  Antworten mit Zitat      
Hallo

ich bin neu hier und habe eine frage.
ich hab ein struktur file in dem folgendes steht
Code:

function [] = param;

atra.D_rain = 0.017e-3;                
atra.D_atmo = 0.010e-3;        

const.c0  = 299792458.0;              
const.RE  = 6378137.0;                
const.my  = 3.986032e14;              
const.pSL = 101325;

ant.Pan_numAz   =   15;                
ant.Pan_numEl   =   1;                  
ant.Pl_pPanAz   =   24;                            

save param,...
    atra,...
    const,...
    ant;


mit
Code:
lade ich nun die parameter in meine funktion rein. jetzt ist nur das problem, dass die ganze geschichte auch im workspace runterläuft und das das programm verlangsammt um so mehr ich in meinem strukturfile habe.

was kann ich gegen das anzeigen in workspace machen?

gruesse[/code]


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 17.04.2008, 18:10     Titel:
  Antworten mit Zitat      
Vielleicht musst du einfach load-Befehl mit Strichpunkt abschließen.
Code:

   load param;
 


hast du etwa das gemeint?

Im Prinzip müssen alle Anweisungen, die etwas zurückgeben, mit einem Strichpunkt abgeschlossen werden, sonst werden alle Rückgabe-Werte auch in Command Window (Matlab Shell) umgeleitet.
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 17.04.2008, 19:09     Titel:
  Antworten mit Zitat      
Hm, an dem load kann's eigentlich nicht liegen, da gibt es keine Ausgabe der geladenen Variablen. Aber prinzipiell ist es richtig: Irgendwo fehlt ein Semikolon am Ende der Zeile.

Es sei denn, mit Workspace ist etwas anderes als das Command Window gemeint...

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 17.04.2008, 19:42     Titel:
  Antworten mit Zitat      
@Bijick
Embarassed Ach so stimmt, danke.
Dem Load-Befehl muss man explizit sagen, dass man einen Rückgabewert wünscht. Stimmt das?


@neuer_08

Kannst du bitte verständlicher erleuchten was du unter Anzeige in Workspace meinst. Und vielleicht die Stelle posten, wo das Laden passiert.
Sonst habe ich auch keine andere Idee, als vergessene Strichpunkt bei einer Anweisung.
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 17.04.2008, 19:58     Titel:
  Antworten mit Zitat      
Hallo denny,

ja, das geht dann mit der Funktionsform des Befehls, etwa

Code:
S = load('param.mat');
% bzw.
S = load('param.mat')


wobei das S ein Struct ist, also auch nicht soviel Output im Command Window produziert.

Ansonsten: Nicht schämen. Smile Wir sind doch alle zum Lernen hier, oder?

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
neuer_08

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.04.2008, 12:29     Titel: problem falsch beschrieben.
  Antworten mit Zitat      
sorry hab gerade festgestellt, dass ich mein problem falsch beschrieben hab.

und zwar steht in meinem strukturfile folgendes:
Code:

function param_load


fid=fopen('Parameterfiles/User_Requ_Param.par');
user.f_c=sscanf(fgetl(fid),'%f');
user.dR=sscanf(fgetl(fid),'%f');
user.dAz=sscanf(fgetl(fid),'%f');

fclose(fid);

%% System File
fid=fopen('Parameterfiles/System_Param.par');
system.H0=sscanf(fgetl(fid),'%f');
system.vp=sscanf(fgetl(fid),'%f');
system.L_atm=sscanf(fgetl(fid),'%f');
system.L_rain=sscanf(fgetl(fid),'%f');

fclose(fid);

save param_load,...
    user,...
    system;
 


ich lese also aus .par files die werte aus. jetzt muss ich nur im .m file folgenden code verwenden:
Code:

param_load;
load param_load

das param_load falls in der zwischenzeit am .par-file ein wert geändert wurde. und das load um dann die werte in mein .m-file zu laden.
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 18.04.2008, 16:16     Titel:
  Antworten mit Zitat      
Hallo neuer_08,

es ist etwas verwirrend, dass die Funktion genauso heißt wie das mat-file. Ansonsten gelten noch die weiter oben gemachten Aussagen.

1. Meinst Du mit "Anzeige im Workspace", dass die Werte der Variablen im Command Window angezeigt werden?

2. Der Grund für eine Anzeige im Command Window ist immer eine Zeile ohne abschließendes Semikolon. Je nachdem, welche Variable angezeigt wird, kann man dann seine Dateien nach solchen Zeilen durchsuchen.

3. Wenn Du etwas anderes meinst als eine Anzeige im Command Window, beschreib es bitte.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 18.04.2008, 19:57     Titel:
  Antworten mit Zitat      
Zitat:

Ansonsten: Nicht schämen. Wir sind doch alle zum Lernen hier, oder?

Da hast du allerdings recht. Smile

@neuer_08
Bitte helfe uns dir zu helfen
Erläutere was du mit Anzeigen meinst?
Private Nachricht senden Benutzer-Profile anzeigen
 
neuer_08

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2008, 09:44     Titel:
  Antworten mit Zitat      
jo. ich meine damit, dass die Werte der Variablen im Command Window angezeigt werden.
das liegt aber eben daran, dass ich das mat-file im m-file erst ausführen lasse.
so wird mir im command window die struktur noch einmal heruntergebetet. und zwar bei folgendem code:
Code:

save param_load,...
    user,...
    system;
 

nur die user struktur, da hinter system ein ; steht.
 
neuer_08

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2008, 09:49     Titel:
  Antworten mit Zitat      
Alles klar. Akute Dummheit meinerseits. DACHTE immer das ich folgende codeänderung schon einmal vorgenommen habe, diese aber nichts gebracht hat:
Code:
save param_load,...
    user;...
    system;

hab aber gerade festgestellt, das es doch was bringt. aber trotzdem danke für eure Bemühungen
 
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 - 2024 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.