|
Marco_gast |

Forum-Fortgeschrittener
|
 |
Beiträge: 53
|
 |
|
 |
Anmeldedatum: 19.12.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.12.2013, 11:25
Titel: unbenutzte Variablen
|
 |
Hallo zusammen,
das ist bestimmt die bescheu*** Frage die hier je gestellt wurde, aber irgendwie habe ich das noch nicht so ganz kapiert
als Beispiel:
a= [1 2 3];
[m n] = size(a);
m = 1 und n = 3 wird ausgegeben
Wenn ich nur die Länge (n= 3) benötige, muss ich aber m mit angeben, damit n mit 3 ausgegeben wird, obwohl ich m gar nicht brauche.
Wie bekomme ich n=3 ohne m zu deklarieren ?
Eine weitere Frage
ich habe eine Funktion die z.B. 20 Werte zurückgibt. Ich benötige aber z.b. nur die Variablen 5, 12, 20. Wie kann ich aus den 20 einzelnen Werten genau die drei herausnehmen?
Danke und Gruß
|
|
|
|
|
Headbucket |

Forum-Anfänger
|
 |
Beiträge: 34
|
 |
|
 |
Anmeldedatum: 03.12.13
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2007B
|
 |
|
|
 |
|
Verfasst am: 19.12.2013, 11:40
Titel:
|
 |
Hallo,
zu deiner ersten Frage. Benutz einfach length anstatt size:
Zur zweiten Frage: Ich nehme mal an, dass die Werte in einem Array zurückkommen. Dann kannst du auf einzelne Werte wiefolgt zufreifen:
Grüße
Headbucket
|
|
|
Marco_gast |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 53
|
 |
|
 |
Anmeldedatum: 19.12.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.12.2013, 11:52
Titel: unbenutzte Variablen
|
 |
ja das length ist ne gute Idee. Danke dafür
Ich habe mein Problem so schon gelöst, in dem ich alle Variablen in ein Array packe und die, so wie du vorschlägst, auslese.
In der Hilfe zu Matlab wird es eben so angegeben:
function [m,s] = stat2(x) --> m und s sind Skalar
Wie greift man hier nun auf die einzelnen Variablen zu, wenn ich, wie oben geschrieben, beispielsweise 20 Werte übergebe?
|
|
|
Headbucket |

Forum-Anfänger
|
 |
Beiträge: 34
|
 |
|
 |
Anmeldedatum: 03.12.13
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2007B
|
 |
|
|
 |
|
Verfasst am: 19.12.2013, 12:51
Titel:
|
 |
Ich verstehe nicht ganz, was du willst aber da bisher noch niemand geantwortet hat versuche ich es nochmal:
Ich habe im Internet folgende Definition deiner Funktion gefunden:
Du übergibst der Funktion also eine beliebige Anzahl von Werten. Die Funktion gibt dir jedoch IMMER nur zwei Ergebnisse zurück. Einmal den Mittelwert m und einmal die Wurzel aus der Summe einer Berechnung deiner Werte.
Wenn du jetzt Zwischenergebnisse dieser Funktion haben möchtest dann musst du diese Funktion erweitern und z.B. eine dritte Variable hinzufügen in der Zwischenergebnisse gespeichert werden.
Du kannst ja auch mal sagen, um was es genau geht. Dann wird das ganze vllt transparenter
|
|
|
Marco_gast |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 53
|
 |
|
 |
Anmeldedatum: 19.12.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.12.2013, 13:27
Titel: unbenutzte Variablen
|
 |
das habe ich versucht, scheinbar hats nicht geklapppt.
Also: (nur ein Bsp. )
function [a,b,c,d,e] = test ()
a= 1;
b= 2;
c= 3;
d= 4;
e= 5; (in der Funktion werden in irgendwie den Variablen a bis e diese Werte zugewiesen)
ich benötige nun von dieser Funktion den Wert der in Variable c steht. Ich muss also schreiben:
[a,b,c,d,e] = test();
und kann ab da mit c weiterarbeiten.
ich kann nicht schreiben :
c= test();
um nur den Wert aus c zu bekommen. Denn es wird dann der Wert von a übergeben.
ich muss also, um an den Wert, der in c steht (3) zu bekommen, mindestens:
[a,b,c] = test();
schreiben.
--> Somit habe ich mit dem Funktionsaufruf 2 unnütze Variablen (a und b) deklariert die ich garnicht brauche.
meine Frage:
Wie rufe ich die funktion auf um NUR den Wert aus c zu bekommen ?
und NEIN ich möchte die Variablen a bis e NICHT in ein Array packen.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 19.12.2013, 13:39
Titel: Re: unbenutzte Variablen
|
 |
Hallo Marco_gast,
In modernen Matlab-Versionen funktioniert:
Zitat: |
--> Somit habe ich mit dem Funktionsaufruf 2 unnütze Variablen (a und b) deklariert die ich garnicht brauche. |
Die Variablen sind aber trotzdem in der Funktion erzeugt worden und die Ersparnis ist kaum zu messen. Das Posten dieser Frage wird sich nur dann gelohnt haben, wenn Du diese Funktion trilliardenfach aufrufst.
Gruß, Jan
|
|
|
Headbucket |

Forum-Anfänger
|
 |
Beiträge: 34
|
 |
|
 |
Anmeldedatum: 03.12.13
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2007B
|
 |
|
|
 |
|
Verfasst am: 19.12.2013, 13:44
Titel:
|
 |
Mit dem letzten Beispiel hab ich jetzt auch verstanden, was du willst ^^
Ja durch die Verwendung von ~ wird kein Speicher belegt. Funktioniert aber erst ab R2009b und später.
Grüße
|
|
|
Marco_gast |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 53
|
 |
|
 |
Anmeldedatum: 19.12.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.12.2013, 13:54
Titel: unbenutzte Variablen
|
 |
Es funktioniert
Jan S ! ich danke dir, genau das habe ich gesucht !
Headbucket, dir ebenfalls !
Primär geht es nicht um das Einsparen von Speicher. (ich rufe meine Funktion tatsächlich mehrere tausend mal auf) Es war aus der Doku nicht ersichtlich, wie ich auf einzelne Rückgabewerte zugreife.
Danke, Frohes Fest und guten Rutsch Euch
Gruß
Marco
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|