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

problem in der Berechnung

 

robin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.01.2010, 14:31     Titel: problem in der Berechnung
  Antworten mit Zitat      
Hallo zusammen,
ich habe ein problem ,und zwar ich möchte Median und mittenfreuquenz und die varianz mit GUI brechenen .
ich habe ein struct mit Amplitudenfrequenz und Standartabweichung und kurtosis schon und habe damit mittelWert berechnet ,nur ich weiss nicht wie ich median und mittenfrequenz und varianz in GUI berechen kann .weiss jemanden wie das geht ,ich hoffe meine frage ist klar
vielen dank im voraus


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 18.01.2010, 17:49     Titel:
  Antworten mit Zitat      
Hallo,

verstehe nicht was GUI mit ganzem zu tun hat,

Die Befehle in Matlab lauten wie folgt
Code:

var   % Varianz
median% Median
std   % Standard-Abweichung
mean  % Mittelwert
 
Private Nachricht senden Benutzer-Profile anzeigen
 
robin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.01.2010, 19:04     Titel: problem in ber berechnung
  Antworten mit Zitat      
Hallo,

ja ich habe ein ungefiltertes signal in GUI und dadurch möchte ich median und varianz und mitten frequenz berechnen
ich habe en struct angefangen und paar sachen wie frequenz und standartabweichung berechnet ,und möchte noch die varianz und median und mittenfrequenz in die struct hinzufügen und damit den mittelwert von meinen messdaten berechnen ,aber aber die formeln ,um das in matlab einzusetzen ,die weiss ich nicht
oder die abkürzungen var und median helfen mir nicht weiter
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 18.01.2010, 19:19     Titel:
  Antworten mit Zitat      
Hallo,
trotzdem verstehe ich nicht wo dein Problem liegt,

kannst du anhand eines Beispieles dein Problem erklären!
Private Nachricht senden Benutzer-Profile anzeigen
 
robin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.01.2010, 19:44     Titel: problem mit berechnung
  Antworten mit Zitat      
Hallo,
mir ist nun klar geworden ,ich musste nur in meine strukture die varianz und median hinzufügen und in GUI ausgeben
% Erstellung der Structure und Benennung der Felder
Merkmale = struct(...
'Median', (1:MESSUNGEN)',...
'Varianz', (1:MESSUNGEN)',...
'Mittenfrequenz', (1:MESSUNGEN);
das ist meine strukture.
% varianz
var = [];
for n = (0:MESSUNGEN-1)
var(end+1) = varianz(spekabs(spekwertevon+n*speksamples:...
spekwertebis+n*speksamples));
end
% varianz in Structure schreiben
Merkmale.Varianz = (var)';
% varianz in GUI ausgeben
varg = mean(var);
set(handles.varianzout,'String',varg);

das ist mein code,und das habe ich für median gemacht ,aber ich weiss nicht wie ich es mit mittenfrequentz machen kann

hast du eine idee ,wie man mittenfreuquenz so ähnliches berechnet ?
 
robin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.01.2010, 21:49     Titel: wieder ein problem
  Antworten mit Zitat      
Hallo,
ich habe ein code um die varianz zu bestimmen aber matlab liefert einen Fehler :Subscript indices must either be real positive integers or logicals.
mein code um die varianz zu bestimmen ist folgendes:
Code:

% Varianz
var = [];
for n = (0:MESSUNGEN-1)
varianz(end+1) = var(spekabs(spekwertevon+n*speksamples:...
                 spekwertebis+n*speksamples));
end
% Varianz in Merkmale Structure schreiben
Merkmale.Varianz = (var)';
% Varianz in GUI ausgeben
varianzg = mean(var);
set(handles.varianzout,'String',varianzg);
was mache ich flasch,dass matlab einen fehler zeigt,wenn die messungen berechne ?

robin
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 19.01.2010, 09:48     Titel:
  Antworten mit Zitat      
Hallo,

var ist eine Native Matlab Funktion und deshalb schon reserviert.
Du darfst einfach es nicht als Variable benutzen, das führt zu Fehler

vielleicht wolltest aber du das so lösen?
Code:

% Varianz
varianz = [];
for n = (0:MESSUNGEN-1)
varianz(end+1) = var(spekabs(spekwertevon+n*speksamples:...
                 spekwertebis+n*speksamples));
end
% Varianz in Merkmale Structure schreiben
Merkmale.Varianz = varianz';
% Varianz in GUI ausgeben
varianzg = mean(varianz);
set(handles.varianzout,'String',varianzg);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
robin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2010, 18:28     Titel: problem mit berechnung
  Antworten mit Zitat      
Hallo,
Es hat funktioniert und es geht nun fehlerfrei,aber ist habe als ergebniss varianz=470 ,das ist der mittelwert ,aber das stimmt nicht!
nach googlesuche,Varianz ist Standartabweichung zu quadrat ,aber wie ich das in meine code umsetze ,das weiss nicht nicht ,ich habe es zum quadrat gemacht aber es kommt selben wert Varianz=470
ich habe so versucht abaer bekomme varianz=21.023
noch eine frage wie kann ich den Median mit gleicher methode berechnen?
das ist mein code:
Code:
% Varianz
varianz = [];
for n = (0:MESSUNGEN-1)
varianz(end+1) = sqrt((var(spekabs(spekwertevon+n*speksamples:...
                 spekwertebis+n*speksamples))));
end
% Varianz in Merkmale Structure schreiben
Merkmale.Varianz = (varianz)';
% Varianz in GUI ausgeben
varianzg = mean(varianz);
set(handles.varianzout,'String',varianzg);


 
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 19.01.2010, 18:47     Titel:
  Antworten mit Zitat      
Hallo,
irgend wie habe den Gang deiner Gedanke nicht verstanden? Also erkläre es bitte noch mal? Es ist schon richtig das: Varianz = Standardabweichung in Quadrat. Und was meinst weiter?

Code:

for n = (0:MESSUNGEN-1)
% Wenn du Wurzel ziehst,
%  bekommst du doch so eine Standardabweichung?
varianz(end+1) = sqrt((var(spekabs(spekwertevon+n*speksamples:...
                 spekwertebis+n*speksamples))));
end

 


soll bei Median gleicher Konstrukt verwendet werden?
Private Nachricht senden Benutzer-Profile anzeigen
 
robin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2010, 19:29     Titel: problem mit berechnung
  Antworten mit Zitat      
Hallo,
Also die Standartabweichung habe ich berechnet mit dem folngenden code:
stdabw = [];
for n = (0:MESSUNGEN-1)
% Standarabweichung
stdabw(end+1) = (std(spekabs(spekwertevon+n*speksamples:...
spekwertebis+n*speksamples),1))...
/(ampmax(n+1));
end
% Standarabweichung in Merkmale Structure schreiben
Merkmale.Standardabweichung = (stdabw)';
% Standarabweichung in GUI ausgeben
stdabwg = mean(stdabw);
set(handles.stdout,'String',stdabwg);
und es stimmt das alles ,nur möchte ich nun die Varianz berechnen ,wie mache ich das mit die for schleife ,die ich vorhin in meinem code dir geschrieben habe ?das heisst wie bekomme ich varianz=standrtabweichung in Quadrat?

und für den Median möchte ich die gleiche konstrukt verwenden .

vielen dank
gruss robin
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 20.01.2010, 10:23     Titel:
  Antworten mit Zitat      
Hallo,
Okay, so kannst du dann aus der Standardabweichung Varianz berechnen.
Code:

varianz =  stdabw.^2
 


Median kannst du auch gleich in der Schleife mitberechnen?
wozu solche Komplexität?
Code:

stdabw  = [];
med_val = [];
for n = (0:MESSUNGEN-1)
% Standarabweichung
stdabw(end+1) = (std(spekabs(spekwertevon+n*speksamples:...
spekwertebis+n*speksamples),1))...
/(ampmax(n+1));

med_val(end+1) = (median(spekabs(spekwertevon+n*speksamples:...
spekwertebis+n*speksamples),1))...
/(ampmax(n+1));
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
robin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.01.2010, 11:32     Titel: problem mit berechnung
  Antworten mit Zitat      
Hallo grüss dich,
vielen Dank erstmal für deine Hilfe,ich bin kein profi in Matlab und deswegen habe noch schwierigkeiten.
ich habe das problem gelöst aber beim berechnen liefert mir matlab auf das command window das ergebnis als mittelwert ,genau was ich gesucht habe ,aber die ergebnisse werden gespeichert ,wieso zeigt matlab das wieder auf command window? so:
varianz =

Columns 1 through 9

0.0468 0.0468 0.0468 0.0468 0.0468 0.0468 0.0468 0.0468 0.0468

Columns 10 through 18

0.0468 0.0468 0.0468 0.0468 0.0468 0.0468 0.0468 0.0468 0.0468

Columns 19 through 27

das ist der code ,es funktioniert nur ,was matlab auf command window liefert stört mich,was mache ich da falsch?
Code:
% Varianz
varianz = [];
for n = (0:MESSUNGEN-1)
varianz = stdabw.^2
end
% Varianz in Merkmale Structure schreiben
Merkmale.Varianz = (varianz)';
% Varianz in GUI ausgeben
varianzg = mean(varianz);
set(handles.varianzout,'String',varianzg);

% Median
med_val = [];
for n = (0:MESSUNGEN-1)
med_val(end+1) = (median(spekabs(spekwertevon+n*speksamples:...
                 spekwertebis+n*speksamples),1))...
                 /(ampmax(n+1));
end
% Varianz in Merkmale Structure schreiben
Merkmale.Median = (med_val)';
% Varianz in GUI ausgeben
mediang = mean(med_val);
set(handles.medianout,'String',mediang);

 
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 20.01.2010, 13:14     Titel:
  Antworten mit Zitat      
Hallo,
du muss in der Zeile die Ausgabe mit Strichpunkt unterbinden
so:
Code:

varianz = stdabw.^2;
 
Private Nachricht senden Benutzer-Profile anzeigen
 
robin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.01.2010, 13:38     Titel: problem mit berechnung
  Antworten mit Zitat      
Hallo,
Ich habe es nicht gemerkt ,das ein strichpunkt fehlt.
vielen dank es hat funktioniert.
hast du eine idee wie ich den Mittenfrequenz berechnen kann,ich habe an die gauß-normalformel gedacht ,aber ich weiss nicht wie ich das mache?
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 20.01.2010, 15:06     Titel:
  Antworten mit Zitat      
Meinst Gaussische-Normal-Verteilung?
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.