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

Hilfe ( Min und maxwerte )

 

ironbulls1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.01.2009, 21:57     Titel: Hilfe ( Min und maxwerte )
  Antworten mit Zitat      
Hallo

bin absoluter Neueinsteiger.
Haben an der Uni nur Theorie gehabt bis jetzt und nun haben wir eine "einfach" Aufgabe die für mich unlösbar ist.

wir sollen ein kleines Programm shreiben

es soll den größten und den kleinsten Wert eines Vektors anzeigen

ich hab ehrlich gesagt kein Plan wie ich da anfangen soll.

der Vektor hat n-Stellen

Bin über jede Hilfe dankbar ( kenn mich mit programmieren und so gar nicht aus )


Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 21.01.2009, 22:04     Titel:
  Antworten mit Zitat      
Was dürft ihr denn verwenden? Also sind matlabinterne Funktionen erlaubt oder sollte ihr explizit Schleifen verwenden?

matlabinterne lösung:
Code:
a=[1 2 3 -100 4 5 1000];
max(a)
min(a)


Ich empfehle dir die Tutorial-Ecke des Forums, da dürften ein paar nützliche Links für Einsteiger zu finden sein. Ansonsten kannst du dir natürlich auch selbst über google entsprechende Hilfen suchen. Wenn dich schon diese Aufgabe vor so große Probleme stellt, solltest du auf jeden Fall schnellst möglich nacharbeiten.
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
ironbulls1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.01.2009, 22:12     Titel:
  Antworten mit Zitat      
ja das mit max und min hab ich schon rausgefunden aber wir sollen es selber schreiben dass es dann maximal und minimalwert ausgibt.

haben erst 2 Theoriestunden gehabt und ehlrich gesagt hab ich kein Plan davon.

bin ja auch kein Informatiker sondern Maschinenbaustudetn seit 1,5 Wochen^^
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 22.01.2009, 00:44     Titel:
  Antworten mit Zitat      
Ach: "Karohemd und S.... Ich studier Maschinenbau" Very Happy

Da es für dich eine Übung sein soll, solltest du dir mal die for bzw. while-schleife und die if-abfrage anschauen. Also was ist das und wie setzt man beides um in Matlab. Und dann baust du mit den beiden einfach genau das selbe auf, als wenn du es per Hand rechnen würdest.

Ich könnte es dir zwar jetzt direkt vormachen, aber dann fehlt ja der Übungsaspekt. Wenn du also mal deine Ideen sammelst und sie hier nieder schreibst, dann kann ich gern Anregungen geben.
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 22.01.2009, 10:40     Titel:
  Antworten mit Zitat      
Hallo ironbulls1,

ich bim *ehrlich* daran interssiert mit dem Professor Kontakt aufzunehmen der MATLAB so vergewaltigen lässt um MIN und MAX neu zu erfinden.

Bitte per Privatmitteilung

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 22.01.2009, 11:17     Titel:
  Antworten mit Zitat      
Eine bekannte, einfache Funktion nachzubilden, ist nicht wirklich ein schlechter didaktischer Ansatz, vor allem wenn die Studenten erst 2h Theorie gehört haben. Natürlich sollte dies nur in den ersten Übungen, der Fall sein um sie heranzuführen ans Thema. Sobald ein gewisser Grundstock an Wissen vorhanden ist, sollte man natürlich anwendungsorientierte Programme schreiben.
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2009, 12:55     Titel:
  Antworten mit Zitat      
b=Vektor(1)
k=2:length(Vektor)
for b>Vektor(k)
k=k+1

for b<Vektor(k)
b=Vektor(k)
k=k+1


was hab ich falsch gemacht?
 
Amilo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2009, 16:14     Titel:
  Antworten mit Zitat      
Code:
function MAX=maxi(x)
% Sucht das Maximum aus x
[m,n]=size(x);
   if m>1      %garantiert das x immer Vektor ist
      x=x';   %transponiert die Matrix wenn x kein Vektor
      [m,n]=size(x);
   end
p=1;         %p ist der Pointer der momentan MAX anzeigt
i=p+1;         %i ist die Laufvariable
while(i<(n+1))   %Schleife ausführen bis Ende von x
   if x(p)<x(i)
      p=i;
      i=i+1;
   else
      i=i+1;
   end
end
MAX=x(p);
 
Amilo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2009, 17:34     Titel:
  Antworten mit Zitat      
Das obere Code in eine Datei maxi.m kopieren. Es handelt sich um eine Funktion namens maxi() die aus Matlab aufgerufen werden kann. Vorher noch ein Vektor bilden mit: Vektor=[5 8 4 12 11 6 1]; danach die Funktion aufrufen mit: maxi(Vektor). Der Vektor darf auch ein Spaltenvektor sein.
Die Funktion mini() musst du selber programmieren nach der Vorlage, danach in mini.m abspeichern. Die kannst du dann testen mit dem Aufruf: mini(Vektor). Durch das Aufrufen der beiden Funktionen:
maxi(Vektor);
mini(Vektor);
... muss 12 und 1 ergeben, damit ist deine Aufgabe gelöst.
Tipp: Mach den Vektor richtig groß und teste deine Funktionen mit min() und max() aus Matlab, du wirst sehen diese sind wesentlich schneller.
Viel Spaß
 
ironbulls1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2009, 22:35     Titel:
  Antworten mit Zitat      
hab jetzt mal selber was geschrieben und en bisschen rumprobiert dass es beides anzeig minimal und maximalwert und hat fuktionier JUPPPIEEEEEEEEEEEEEEEEEEEEEEE

ist das so gut?

Code:
laenge=length(x);
Maximalwert=x(1);
Minimalwert=x(1);
k=2;
while(k<=length(x));
    if(Maximalwert<x(k));
        Maximalwert=x(k);
        k=k+1;
    else;
        k=k+1;
    end;
end;

k=2;


while(k<=length(x));
    if(Minimalwert>x(k));
        Minimalwert=x(k);
        k=k+1;
    else;
        k=k+1;
    end;
end;

Maximalwert
Minimalwert

 
 
ironbulls1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2009, 22:36     Titel:
  Antworten mit Zitat      
hab grad gesehn dass ich die laenge nicht definieren muss ^^ aber sonst gut so?
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 22.01.2009, 23:41     Titel:
  Antworten mit Zitat      
da sowieso bis zum letzten Element durchgegangen werden muss, hätte es auch eine for-schleife getan. Aber ja, dass sieht ganz vernünftig aus. Smile
_________________

>> why
The computer did it.
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 - 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.