Verfasst am: 27.11.2011, 23:42
Titel: Matrixproblem (Zwischenspeichern bei erschachtelte for sch)
Hiiii,
ich hab ein Problem bei meinem Projekt.
Es handelt sich um eine Art Hörempfindlichkeitstest, es werden verschiedene Töne abgespielt. Die Töne die gehört wurden müssen für die Grafik später gemerkt werden.
Leider weiss ich nicht wie ich die gehörten Töne abspeichern kann. Ich habe es folgendermaße versucht aber ist nicht eigentl so wie ich es will
Code:
Frequenzen = [500100020004000800016000];
dB = [-50-40-30-25-20-15-10-5010];
Das Problem ist bei der nächsten durchlauf von dB werden die Werte Matrix_Freqq überschireben.
Wie kann ich Sie zwischenspeichern, oder hab ihr eine bessere Methode???
Hallo Pasha,
wie sollen Deine Ergebnismatrizen aussehen?
Ich bin mir nicht ganz sicher, ob das was ich aus Deinem Code interpretiere
und das was Du wirklich willst, übereinstimmen.
erzeugen sicher nicht das Gewünschte. Die ersten beiden Zeilen weisen
den Variabeln Matrix_Freq bzw. Matrix_dB jeweils eine 0x0-Matrix zu, also
eine Matrix ohne Elemente. Die dritte Zeile erzeugt eine neue Matrix aus den beiden ersten, indem sie die eine 0x0-Matrix an die andere 0x0-Matrix anhängt. Das ergibt eine 0x(0+0)-Matrix. Diese Matrix ändert sich auch
später nicht mehr, da es sich um eine Kopie der beide anderen Matrizen
handelt.
Sollen die Eingaben in Zeilen für die Frequenz und Spalten für die dB eingetragen werden wäre
Erstmals danke für deine schnelle antwort, tut mir leid dass ich mich nicht genau ausdrücken konnte. Ich versuch es mal erneut... also insgesamt sind es 6*10 = 60 Messungen. Die einzelnen Frequenzen der
Die Ausgabe der Töne sind folgendermaßen aus:
1. Ton : bei -50dB mit der Frequenz 500Hz
2. Ton : bei -50dB mit der Frequenz 1000Hz
3. Ton : bei -50dB mit der Frequenz 2000Hz
bis
6. Ton : bei -50dB mit der Frequenz 16000Hz
dann gehts weiter mit der nächsten Lautstärke (dB)
7. Ton : bei -40dB mit der Frequenz 500Hz
bis
12.Ton: bei -40dB mit der Frequenz 16000Hz
usw
Nun muss ich die gehörten Töne bei welcher Lautstärke(dB) mit welcher Frequenz speichern.
Mein ErgenbisMatrix muss aus 2 Zeilen bestehen zB:
Freq: 500 1000 2000 4000 8000 16000
dB : -40 -30 -30 -30 -25
hier : bei -40dB wurde nur die Freq 500Hz gehört, wobei bei -30dB drei Frequenzen gehört wurden
Bei der Methode ist das Problem dass bei der nächsten Messung z.B bei -30dB die vorigen Messungen überschrieben werden, ich weiss wiklich nicht wie ich es übergehen könnte
Leute danke sehr für eure Hilfe,
manchmal sieht man den Wald voller Bäume nicht "grins"...
Alles hat soweit geklappt habe aber ein kleines Problem hab ich noch...
und zwar mit dem plotten, klappts nicht so wie ich es will...
in xAchse kommen die Frequenzen und in die yAchse die dB Werte.
Ich würde gerne eine Standart Skalierung haben unabh. von den Werten, denn nach jeder Messung sieht die Skalierung anders aus....
also auf die xAchse sollen nur die Werte ausgeben werden natürlich mit einer vernünftigen abstand zwischen den Werten.
xAchse: (0-500-1000-2000-4000-8000-16000)Hz d.h nur die Werte bei den gemessen wurde
yAchse: (-50--45--40.....10)dB
habe es zurletzt mit der Methode versucht, geht auch nicht
Code:
%Matrix_Erg(Frequenzen;dB) Meine Matrix
plot(Matrix_Erg(1,:),Matrix_Erg(2,:),'O','MarkerSize', 12);
grid on;
%set(gca,'XTick',[0:500:16000]);
%set(gca,'YTickLabel',['500';'1000';'2000';'4000';'8000';'16000']);
xlabel('Frequenz in Hz');
ylabel('Lautstaerke in dB');
title('Hoerempfindlichkeitstest');
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
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.