www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Matlab" - Abspeicherung in neuen Vektor
Abspeicherung in neuen Vektor < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Abspeicherung in neuen Vektor: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 11:44 Do 05.04.2012
Autor: ronchen

Ich habe diese Frage in keinem anderem Forum gestellt.

Hallo habe folgende Programmierung:

sek=2;
anfangsZeit = 1;
for m = 1 : (length(A) )
      
     endZeit = find(B < (m * sek), 1, 'last');
     D=A(anfangsZeit:endZeit);  
     anfangsZeit = endZeit + 1;
    
end

Diese schleife sucht mir aus einem großen Vektor A mit Hilfe eines Zeitvektors B alle Werte die innerhalb von 2 Sekunden vorkommen.Diese werden dann unter D  gespeichert in dieser schleife. Nun möchte ich aber das nach jedem Durchlauf dieses D in einem Vektor abgespeichert wird also z.B. C1,C2,C3 usw. sonst wird er ja immer wieder überschrieben, ist dies möglich?

Danke für jede Hilfe

        
Bezug
Abspeicherung in neuen Vektor: Antwort
Status: (Antwort) fertig Status 
Datum: 12:12 Do 05.04.2012
Autor: QCO

Du kannst doch einfach eine Matrix nutzen - funktionieren wie die Vektoren, nur mit zwei Indizies.
Angenommen deine Ergebnisvektoren D werden nicht länger als 42
C=zeros(length(A),42)
und dann in der Schleife:
C(m,:)=D
Ansonsten gäbe es noch die Funktion eval:
eval(['C_' num2str(m) '=D']);
allerdings ist das eher langsam und auch nicht unbedingt der beste Stil.


Bezug
                
Bezug
Abspeicherung in neuen Vektor: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 16:31 Do 05.04.2012
Autor: ronchen

Vielen Dank für die schnelle Antwort. Das mit eval hatte ich auch schon probiert funktioniert so weit ganz ok, bekommene aber zu viel leere Vektoren. Problem bei mir habe zum Beispiel 43000 Werte pro 0,0015 sek ein Wert so das ca. pro 2 sekunden 3116 werte in einen vektor müssen.So diese Zahl variiert aber kann auch 3115 oder 3117 sein. wenn ich es so mache:

sek=2;
anfangsZeit = 1;
C=zeros(length(A),1316);
for m = 1 : (length(A) )
      
     endZeit = find(B < (m * sek), 1, 'last');
     D=A(anfangsZeit:endZeit);
     C(m,:)=D;  
     anfangsZeit = endZeit + 1;
    
end

sagt er dann:

??? Subscripted assignment dimension mismatch.

Error in ==> Analyse_einer_Messreihe at 22
    C(m,:)=anzahl;

Das heißt er beschreibt die ersten drei Zeilen und dann sind es nicht mehr 3116 sondern mehr oder weniger und dann kommmt der Fehler. So und mache ich es mit eval bekomme ich zwar meine Vektoren aber zuviele da die SChleife ja 43000 mal durchgeht. Vielleicht noch ein Tip so funktioniert es ja, nur die Kleinigkeiten.

Danke

Bezug
                        
Bezug
Abspeicherung in neuen Vektor: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 16:43 Do 05.04.2012
Autor: ronchen

So jetzt habe ich es sieht aber nicht sehr elegant aus könnte mir da jamand noch helfen das umzuformulieren. Danke

sek=2;
anfangsZeit = 1;
for m = 1 : (length(A) )
      
     endZeit = find(B < (m * sek), 1, 'last');
     D=A(anfangsZeit:endZeit);
     test=sum(D);

     if test==0
         C=0;
     else  
         eval(['C' num2str(m) '=D']);  
     end
     anfangsZeit = endZeit + 1;
    
end


Bezug
                                
Bezug
Abspeicherung in neuen Vektor: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 17:20 Sa 07.04.2012
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
                        
Bezug
Abspeicherung in neuen Vektor: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 17:20 Sa 07.04.2012
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
                                
Bezug
Abspeicherung in neuen Vektor: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 08:41 Mo 16.04.2012
Autor: ronchen

So hätte da noch einmal eine kleine Frage. Habe wie oben schon beschrieben meine vektoren erstellt C1,C2......

So nun möchte ich diese miteinander vergleichen, also wie eine for Schleife ungefähr so

for i=1:counter  %counter zählt beim Erstellen der vektoren wie oft welche erstellt werden

[p,h]=ranksum(C(i),C(i+1))
end

Das geht natürlich nicht da er ja auf die Spalte in der Matrix zugreifen will, möchte aber mit dem i die Vektorbezeichnung ansprechen also C(i)=C1 usw. wie könnte ich das am besten machen. Wäre für jede Hilfe dankbar.

Ronny

Bezug
                                        
Bezug
Abspeicherung in neuen Vektor: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 09:20 Mi 18.04.2012
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]