|
jean marie |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.01.2013, 15:34
Titel: Werte in einem Intervall
|
|
Hey ich habe eine Frage:
Ich habe ein array von 250 Zahlen, davon habe ich den Mittelwert berechnet. Nun soll ich jede Zahl überprüfen, ob der Mittelwert zwischen der i-ten und der (i+1) -ten Zahl. Und danach soll ich überprüfen welcher der beiden Zahlen näher am Mittelwert liegt.
Ich habe es versucht aber irgentwie kommt noch nicht das richtige herraus kann mir vielleicht jemand weiter helfen?
[EDITED, Jan, Bitte Code-Umgebung benutzen - Danke!]
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 17.01.2013, 16:09
Titel: Re: Werte in einem Intervall
|
|
Hallo jean marie,
"gw" ist in beiden Fällen gleich und wird nur im 2. Fall ausgegeben. Besser:
Ist dies das, was Du suchst?
Noch ein Hinweis für schöne Matlab-Programme:
Ziehe doch mal den Index-Vektor aus der FOR-Schleife direkt in die Indices innerhalb der Schleife:
Das ersetzt die FOR-Schleife!
Hier wurde noch aus || das allgemeinere | gemacht. Siehst Du schon, wie man den nächsten Test ebenso durchführen könnte?
Gruß, Jan
|
|
|
jean Marie |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.01.2013, 16:31
Titel:
|
|
Vielen Dank für deine schnelle Antwort, ich habe den Fehler jetzt behoben, aber irgentwie gibt er mir nicht alle Werte für gw aus, dort erhalte ich immer nur ein Wert. Was muss ich noch ändern, damit ich zum Schluss alle mein gw erhalte? ich habe es schon versucht mit gw(1,i) = a(i) aber so funktionniert es auch nicht [/code]
|
|
|
jean marie |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.01.2013, 16:58
Titel:
|
|
Nun erhalte ich alle Werte aber ich will nur die herausbekommen bei denen es zutrifft. Also ich erhalte nun ein Array mit lauter Nullen und an denen Stelle wo das mit dem Mittelwert zutrifft dort steht die Zahl. Aber wie erhalte ich ein Array in dem nur die Zahlen drin stehen, die mich interressieren?
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 17.01.2013, 17:26
Titel:
|
|
Hallo jean marie,
Das "else if (test1 > test2)" ist nur notwendig, wenn du test1==test2 unbedingt ausschließen möchtest.
Du kannst entweder nach der Schleife alle Nullen aus gw löschen:
Oder Du verwendest einen zweiten Zähler k, der immer um 1 erhöht wird, wenn ein passender Wert auftritt.
Eigentlich naheliegend, oder? Aber es ist wie immer: wenn man es weiß, ist es trivial. Wenn man es nicht weiß, unmöglich. :-)
Gruß, Jan
|
|
|
jean Marie |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.01.2013, 17:41
Titel:
|
|
Ach ja stimmt .... vielen Dank ja bin einfach nicht darauf gekommen viel Dank. Ich habe da jetzt nur das Problem (da es ja nun ausserhalb von der Schleife ist), dass ich den Index noch benötige also an welcher Stelle der Wert im Array a ist. Kann ich das irgentwie lösen, das ich den Wert mit dem Index bekomme?
Vielen Dank
MFG Jean Marie
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 18.01.2013, 08:30
Titel:
|
|
Hallo jean Marie,
Ich verstehe die Frage nicht. An welcher Stelle steht welcher Wert im Array a?
Vielleicht könntest Du gw zunächst auch mit dem Index der FOR-Schleife beschreiben, und nach der Schleife per FIND die Indices erhalten. Aber möglicherweise meinst du etwas anderes. Es hilft bestimmt, wenn Du den aktuellen Code postest.
Gruß, Jan
|
|
|
jean marie |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.01.2013, 10:56
Titel:
|
|
Mein Programm sieht jetzt so aus am Ende erhalte ich alle richtigen Werte in gw das Programm funktionniert also, aber ich möchte nun gerne wissen an welcher stelle die Werte von gw in dem Vektor a stehen. Als Beispill: Der erste Wert von gw sei 5 nun möchte ich gerne wissen an welcher stelle diese 5 in meinem Anfangsvektor a steht.[/code]
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 19.01.2013, 14:08
Titel:
|
|
Hallo jean marie,
Im Code stimmt etwas nicht mit der Schleife: "for i" ist wohl eher gemeint als "for k", oder?
Wenn Du nun noch die Position wissen möchtest, wieso schreibst Du den entsprechenden Index nicht einfach in einen zweiten Vektor? Also überall, wo gw benutzt wird, füge eine zweite Variable gwIndex ein und speichere darin die Position bzgl. a. Das ist naheliegend, oder?
Gruß, Jan
|
|
|
|
|
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 - 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.
|
|