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

Auftragsreihenfolge bestimmen

 

popoff_1
Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 11.03.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.03.2020, 16:33     Titel: Auftragsreihenfolge bestimmen
  Antworten mit Zitat      
Hi, folgende Aufgabe:

Lösen Sie das Maschinenbelegungsplanungsproblem in dem Sie die Auftragsreihenfolge bestimmen. Generieren Sie eine Matrix T, die in der ersten Spalte die Auftragsnummer von 1 bis 10 und in der zweiten Spalte die Bearbeitungszeiten der Aufträge (gleichverteilt zwischen 15 und 45 Minuten) beinhaltet. Schreiben Sie eine MATLAB-Funktion ShortestTime(T), die die Aufträge in der Reihenfolge der kürzesten Bearbeitungszeit wiedergibt und verwenden Sie dabei den Befehl sortrows. Erstellen Sie eine weitere MATLAB-Funktion LongestTime(T), die die Aufträge in der Reihenfolge der längsten Bearbeitungszeiten auflistet.

Folgendes habe ich probiert:
Code:

T=[1:10;40,43,18,43,34,18,23,31,44,38]'
function [ShortestTime] = sortrows(T)
end
X=ShortestTime
 


Kann mir jmd einen Tipp geben wie ich das Skript zum laufen bekomme?
Private Nachricht senden Benutzer-Profile anzeigen


popoff_1
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 11.03.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.03.2020, 13:13     Titel:
  Antworten mit Zitat      
Ich bin jetzt ein bisschen weitergekommen:

Code:

T=[1:10;40,43,18,43,34,18,23,31,44,38]';
T=ShortestTime(T)
T=LongestTime(T)
function [c]=ShortestTime(T)
c=sortrows(T,[2 1])
end
function [c]=LongestTime(T)
c=sortrows(T,[-2 1])
end


Aber ich müsste es jetzt noch hinbekommen dass mir im Ergebnis immer nur die Erste Spalte des Vektors angezeigt wird. Wie bekomme ich das hin?

Und beim Skript gibt mir Matlab immer zuletzt noch die Matrix T aus, dies möchte ich allerdings nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.03.2020, 14:59     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Aber ich müsste es jetzt noch hinbekommen dass mir im Ergebnis immer nur die Erste Spalte des Vektors angezeigt wird. Wie bekomme ich das hin?

T(:,1)

Zitat:
Und beim Skript gibt mir Matlab immer zuletzt noch die Matrix T aus, dies möchte ich allerdings nicht.

Strichpunkte an die Zeilenenden setzen

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
popoff_1
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 11.03.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.03.2020, 18:15     Titel:
  Antworten mit Zitat      
Danke für die Antwort.

Muss ich T(:,1) innerhalb der Funktion einfügen? Denn wenn ich das in der Funktion einfüge schreibt mir Matlab trotzdem noch die Zweite Spalte als Ergebnis.

Code:

function [c]=ShortestTime(T);
c=sortrows(T,[2 1]);
T(:,1);
end
function [c]=LongestTime(T);
c=sortrows(T,[-2 1]);
T(:,1);
end
 


Ergebnis:
Code:
B =

     3    18
     6    18
     7    23
     8    31
     5    34
    10    38
     1    40
     2    43
     4    43
     9    44
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.03.2020, 18:35     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Muss ich T(:,1) innerhalb der Funktion einfügen?

Dort, wo du es angezeigt bekommen willst, und ohne Strichpunkt - sonst wird die Anzeige unterdrückt.
Die Vermutung ist zudem, dass du c angezeigt bekommen willst. Dann musst du auch c(:,1) schreiben.

Zitat:
schreibt mir Matlab trotzdem noch die Zweite Spalte als Ergebnis.

Dann fehlt an anderer Stelle noch ein Strichpunkt.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
popoff_1
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 11.03.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.03.2020, 20:15     Titel:
  Antworten mit Zitat      
Ok, jetzt bin ich soweit. Aber zuletzt gibt mir Matlab immer noch den Vektor T aus obwohl ich überall einen Strichpukt habe:

Code:

function [c]=ShortestTime(T);
c=sortrows(T,[2 1]);
c(:,1)
end
function [c]=LongestTime(T);
c=sortrows(T,[-2 1]);
c(:,1)
end
 


Das Ergebnis in Matlab sieht so aus:

Code:
>> T=ShortestTime(T)

ans =

     3
     6
     7
     8
     5
    10
     1
     2
     4
     9


T =

     3    18
     6    18
     7    23
     8    31
     5    34
    10    38
     1    40
     2    43
     4    43
     9    44
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

ein Strichpunkt fehlt halt noch:
T=ShortestTime(T);

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
popoff_1
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 11.03.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.03.2020, 22:15     Titel:
  Antworten mit Zitat      
Ok jetzt funktionierts. Aber wenn ich nun meine Zweite Funktion aufrufe kommt dieser Fehler:
Unrecognized function or variable 'LongestTime'

An was liegt das? Muss ich die Funktionen separat in einem m-file speichern?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

ja. Von außen ist nur die erste Funktion aufrufbar, andere Funktionen sind lokale Funktionen und nur innerhalb der Datei aufrufbar.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
popoff_1
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 11.03.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2020, 09:35     Titel:
  Antworten mit Zitat      
Das heißt also dass beide Funktionen nur im Editor aufrufbar sind? Nur dass ich das richtig verstehe.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.03.2020, 10:29     Titel:
  Antworten mit Zitat      
Hallo,

ich würde es anders ausdrüclen: die erste Funktion in einer Datei ist von "überall" aus aufrufbar. Alle anderen Funktionen, die unter dieser ersten Funktion stehen, können nur innerhalb der Datei aufgerufen werden.
Du kannst das ja aber auch alles selbst direkt in MATLAB ausprobieren.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.