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

for schleife soll vektor ausgeben

 

myxtyx

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.01.2012, 15:34     Titel: for schleife soll vektor ausgeben
  Antworten mit Zitat      
Hallo

ich habe eine for schleife erstellt, die mir maxima aus mehreren datein ausgibt. diese ergebnisse sollten nun aber alle in einem vektor ausgegeben werden und nicht als einzelne zahlen.

hier mein code, ich hoffe ihr könnt mir helfen
Code:

function [max_x,max_y] = maxi(input,fileno,nofile,headerlines);
% Import IR data and search for the maxima between the lines 1555 and 1960

for i = 2:1:14
    bb=[input,int2str(i-1),'.dpt'];
    g = importdata(bb,'\t',headerlines);  % import the files beginning with line 1555, data is seperated by a tab
z=g.data(1:405,:);
[c,j]=max(z);
x_max=z(j(2),2)
y_max=z(j(2),1)

end
 


edit by denny: bitte die Codeumgebung verwenden. Danke!


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 25.01.2012, 16:14     Titel:
  Antworten mit Zitat      
Hallo

Vektor vorinitialisieren und dann in deiner Schleife füllen

so ähnlich soll auch bei dir dann ablaufen:
Code:

v = zeros(1,5)
for k=1:5
 
  mv = max(rand(1,10))
  v(k)=mv
end

 
Private Nachricht senden Benutzer-Profile anzeigen
 
myxtyx

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.01.2012, 11:40     Titel:
  Antworten mit Zitat      
danke, Problem ist jetzt nur, die Größe des Vektors zu definieren, so wie die Ergebnisse der Maximasuche.
 
rainer87
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 22.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2012, 01:00     Titel:
  Antworten mit Zitat      
wenn du die größe nicht weiß kann man das auch ohne initialisierung machen.
Code:

v=[]
for idx =1:5
    m=max(g.data)
     v=[v; m]; %oder v(end+1)=m
end
 


weiß gerade nicht was du sonst noch meinst mit ergebnisse maximum suche.. ist schon spät Wink
d.h. wenn die zeilen da irgendwie unterschiedlich lang sind dann mach das ganze mit einem cell array
also:

Code:

c={};
for idx=1:5
m=max(g.data)
c{end+1}=m;
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
myxtyx

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2012, 13:42     Titel:
  Antworten mit Zitat      
Ich glaube ich versteh das ganze nicht so richtig, denn auch jetzt kommt kein vektor heraus, der mir im workspace angezeigt wird, in dem alle die ergebnisse gesammelt werden.
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 27.01.2012, 13:53     Titel:
  Antworten mit Zitat      
wie siht denn dein code jetzt aus und was tippst du ins commandwindow etc?
Private Nachricht senden Benutzer-Profile anzeigen
 
myxtyx

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2012, 14:44     Titel:
  Antworten mit Zitat      
Code:

function [max_x,max_y] = maxi(input,fileno,nofile,headerlines);
% Import IR data and search for the maxima between the lines 1555 and 1960


   
for i = 2:1:14
    bb=[input,int2str(i-1),'.dpt'];
    g = importdata(bb,'\t',headerlines);  % import the files beginning with line 1555, data is seperated by a tab
z=g.data(1:405,:);

[c,j]=max(z);
x_max=z(j(2),2)
y_max=z(j(2),1)
end
v=[]
for idx =1:5
    m=max(g.data)
     v=[v; m];

end
 


command
Code:

maxi1('gas_',1,14,1554)
 
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 27.01.2012, 14:49     Titel:
  Antworten mit Zitat      
da v kein rükgabe parameter der funktion ist kann der 1. nicht im workspace auftauchen und 2. rufst du die funktion auch garnicht so auf das was im workspace angelegt wird.

alle variablen in der funktion existieren nur in der funktion und nicht außerhalb darum hast du ja rückgabe werte.
wen du im commandwindow sin(pi) schreibst kommt ja auch kein x=0 in den workspace ^^
[a,b]=funktion(c,d) wenn in der funktion 2 rückgabe parameter definiert sind.
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.