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

Vektoren Normalisieren

 

JOhn

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.02.2008, 08:03     Titel: Vektoren Normalisieren
  Antworten mit Zitat      
Hallo,
ich hab eine frage. Ich muss die elemente vonVektoren Normalisieren.
Erstens, es gibt mehrere VersuchPerson und füe jede VP gibt es ungefähr 100.txt.Jede txt enthält ein Vektor.
so habe ich meine txt files geloadet
files = dir('ergebnisvektor*.txt');
for i=1:length(files)
s = ['load ergebnisvektorVP1_' int2str(i) '_av.txt']
eval(s)
end
habe ich so weil ich viele txt files habe mit dem gleichen Name aber ändert sich nur die Nummer vor(av.txt) fürjede vp.
jetzt muss ich das rechnen
ergebnisvektorVP1_01_av =
ergebnisvektorVP1_01_av - mean(ergebnisvektorVP1_01_av)

wie kann ich es schreiben...danke sehr
JOhn


Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 25.02.2008, 14:39     Titel:
  Antworten mit Zitat      
Hallo John,

erster Vorschlag: lass das eval weg und nehme die load-Funktion:
Code:
load(['ergebnisvektorVP1_' int2str(i) '_av.txt'])


Zweiter Vorschlag: verwende load mit Rückgabeargument. Dann bekommst Du eine Variable, mit der Du direkt arbeiten kannst:

Code:
m = load(['ergebnisvektorVP1_' int2str(i) '_av.txt']);
m = m - mean(m);
% und mach mit m was immer Du damit vor hast...
 


Ciao,
Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
JOhn

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.02.2008, 16:27     Titel: Danke sher
  Antworten mit Zitat      
Danke sher Titus für deine Hilfe ..... ich hab es so gemacht:
filesVP31 = dir('ergebnisvektor_vp_31RecordKSS_*.txt');
filesVP32 = dir('ergebnisvektor_vp_32RecordKSS_*.txt');
filesVP33 = dir('ergebnisvektor_vp_33RecordKSS_*.txt');
%VP 31
for i=1:length(filesVP31)
n1=[];
n1(i) = load(['ergebnisvektor_vp_31_' int2str(i) '_RecordKSS_.txt']);
n1(i) = n1(i) - mean(n(i));
end
%VP 32
for i=1:length(filesVP32)
n2=[];
n2(i) = load(['ergebnisvektor_vp_32_' int2str(i) '_RecordKSS_.txt']);
n2(i) = n2(i) - mean(n2(i));
end
%VP 33
for i=1:length(filesVP33)
n3=[];
n3(i) = load(['ergebnisvektor_vp_33_' int2str(i) '_RecordKSS_.txt']);
n3(i) = n3(i) - mean(n3(i));
end
... Very Happy
habe ich es richtig gemacht.....Jede Versuch Person hat viele Versuche nämlich :ergebnisvektor_vp_32_' int2str(i) '_RecordKSS_.txt
und für jede Versuch muss
n3(i) = n3(i) - mean(n3(i));
muss gerechnet...
habe ich es so richtig gemacht ? :p
Danke JOhn
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 25.02.2008, 17:03     Titel:
  Antworten mit Zitat      
Hallo John,

im Prinzip ja, nur eine Sache verstehe ich nicht:
Code:
for i=1:length(filesVP31)
n1=[];
n1(i) = load(['ergebnisvektor_vp_31_' int2str(i) '_RecordKSS_.txt']);
n1(i) = n1(i) - mean(n1(i));
end
 

Was macht das n1=[]? Damit machst Du ja in jedem Schleifendurchlauf Deinen Vektor kaputt. Ich hätte eher so etwas erwartet, dass n1 vorher zu Null gesetzt wird, und erst nach der ganzen Schleife der Mittelwert abgezogen wird.
Code:
n1 = zeros(length(filesVP31), 1);
for i=1:length(filesVP31)
n1(i) = load(['ergebnisvektor_vp_31_' int2str(i) '_RecordKSS_.txt']);
end
n1 = n1 - mean(n1);
 

Wobei mir gerade auffällt: steht in jeder Datei nur ein Wert? Sonst dürfte die Zuweisung n1(i)=load(...) sowieso nicht funktionieren.

Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
JOhn
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 25.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.02.2008, 10:45     Titel: so sollte es
  Antworten mit Zitat      
In jedem txt Datei steht nur eine Zeile von werten ...ungefähr 400 zahl.
Ich muss am Ende ein Vektor bekommen, in dem Vektor muss alle lösungne von dem folgenden Formel enthalten
FORMEL:
Normalisierte Vektor = Vektor - mean(Vektor);
das problem ich hab ungefahr 100 Vektore die ich normalisieren muss
....Vektor1, Vektor2, Vektor3,...., ich will dass ich die mit for schleife loaden oder mit ergend was Hauptsache dass ich ich nicht hundert mal Loaden schreiben Very Happy
kannst du mir bitte Helfen
Am Ende muss dieser normalisiert Vektor gezeigt werden..

danke sehr...
radwan
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.