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

In einem vektor Wert 1+2, 3+4, 5+6, 7... Mittelwert bilden

 

diri3l
Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 25.01.14
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 03.07.2015, 15:51     Titel: In einem vektor Wert 1+2, 3+4, 5+6, 7... Mittelwert bilden
  Antworten mit Zitat      
Hallo,

ich steh grad auf dem Schlauch.

Ich habe einen Vektor mit 1528 Einträgen und möchte jeweils immer von zwei Werten den Mittelwert bilden.

also (1+2)/2, (3+4)/2, (5+6)/2,...

Wie bewerkstellige ich das am Besten? Hab es shcon mit einer for Schleife probiert, stelle mich aber mal wieder zu blöd an Rolling Eyes

Code:
for iNode = 1:1528
    wert(iNode) = (free(iNode)+free(iNode+1))/2
end


Bisher sieht das so aus. Aber mir fehlt der Sprung zum nächsten Wert, also irgendwas mit (iNode+1).
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 03.07.2015, 16:04     Titel:
  Antworten mit Zitat      
Zitat:
Aber mir fehlt der Sprung zum nächsten Wert, also irgendwas mit (iNode+1).
das verstehe ich nicht.
Zitat:
Code:
for iNode = 1:1528
    wert(iNode) = (free(iNode)+free(iNode+1))/2
end
ist doch schon nicht schlecht. allerdings berechnest du 1+2 un 2+3 un 3+4 und so weiter. du musst also im ergebnissvektor jedes 2. element löschen
oder du berechnest gleich nur jedes zweite
Code:
free=1:1528;
k=1;
for iNode = 1:2:1528  
    wert(k) = (free(iNode)+free(iNode+1))/2;
    k=k+1;
end

oder du machst es ohne schleife mit mean und reshape
Code:
free=1:1528;
wert=mean(reshape(free,2,[]));

grüße
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
diri3l
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 25.01.14
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 03.07.2015, 16:21     Titel:
  Antworten mit Zitat      
Zitat:

oder du berechnest gleich nur jedes zweite
Code:
free=1:1528;
k=1;
for iNode = 1:2:1528  
    wert(k) = (free(iNode)+free(iNode+1))/2;
    k=k+1;
end



so hatte ich das auch gedacht, direkt jedes Zweite zu berechnen. Aber bist du dir Sciher, dass das stimmt?

free ist der ursprüngliche Vektor wo die Werte drinnen stehen. iNode die Laufvariable.
Ich habe es daher mal so korrigiert:

Code:
iNode=1:1528;
k=1;
for iNode = 1:2:1528  
    wert(k) = (free(iNode)+free(iNode+1))/2;
    k=k+1;
end


Edith: Jetzt läufts damit. Vielen Dank!

Grüße und ein schönes Wochenende.
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 03.07.2015, 16:29     Titel:
  Antworten mit Zitat      
Zitat:
Aber bist du dir Sciher, dass das stimmt?

was bringt dich zu der annahme das es nicht stimmt?
Zitat:
Ich habe es daher mal so korrigiert:

ich hab nur ein free erstellt weil du keines angegeben hast......
kann ja deine daten nicht raten. deswegen immer lauffähige beispiele posten damit der leser sich nicht alles selber ausdenken muss. deine korrektur hat also nix mit deinem problem zu tun.
Zitat:
Wenn ich das so mache, dann schreibt er lediglich einen vektor "wert" mit den zahlen 1 bis 764 raus. mit dem ursprünglichen vektor "free" passiert gar nix.

was erhoffst du dir denn was mit free passieren soll? du änderst free ja nirgends. warum soll damit also was passieren?
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
diri3l
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 25.01.14
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 03.07.2015, 16:57     Titel:
  Antworten mit Zitat      
Achso, ja das hätte ich mitliefern sollen, sorry. iNodes war als Laufvariable gedacht und free der Vektor der bearbeitet werden soll.
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 03.07.2015, 17:03     Titel:
  Antworten mit Zitat      
diri3l hat Folgendes geschrieben:
Achso, ja das hätte ich mitliefern sollen, sorry. iNodes war als Laufvariable gedacht und free der Vektor der bearbeitet werden soll.

das war mir schon klar aber die werte hattest du ja nicht mitgeliefert also musste ich beispiel daten erstellen.
_________________

richtig Fragen
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.