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

Aus zwei nx1 Matrizen wie eine nx2 Matrix machen ?

 

Helix
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.02.2010, 18:27     Titel: Aus zwei nx1 Matrizen wie eine nx2 Matrix machen ?
  Antworten mit Zitat      
Hallo!!

Ich hätte da gerne mal ein Problem.

In meinem Programm lasse ich über eine 'for' Schleife eine Berechnung zweimal durchlaufen. Pro Durchlauf wird das Ergebnis in einer n x 1 Matrix gespeichert. Die beiden Ergebnisse sollen nun in eine n x 2 Matrix gespeichert werden.
Das ganze soll dazu dienen um über die Funktion 'wavplay' eine Stereoausgabe zu erzeugen.
(wavplay arbeitet bei einer n x 1 Matrix in Mono, bei n x 2 in Stereo) Allerdings scheint er die beiden Ergebnisse in einer Spalte untereinander zuschreiben. Es wird also das Signal zweimal hintereinander abgespielt (Mono) anstatt Stereo über rechten und linken Kanal.

Code:
Das ist der Programmteil
for j=1:1:2,
   if (j==1),
      a=links;
    else
      a=rechts;
   end

% Eine Wand wird über zwei Referenzpunkte definiert
% Wand1
w11 = [abstand_w2; abstand_w1];
w12 = [abstand_w3; abstand_w1];
w1 = virtual_listener(w11,w12,a);

% Wand2
w21 = [abstand_w2; abstand_w1];
w22 = [abstand_w2;(abstandhoerer_y -5)];
w2 = virtual_listener(w21,w22,a);

% Wand3
w31 = [ abstand_w3; abstand_w1];
w32 = [ abstand_w3;(abstandhoerer_y -5)];
w3 = virtual_listener(w31,w32,a);


Fs = 44100;


    % Signal, das der Hörer ohne Wände hören würde
    signal_hoerer = lesliesim(a,c,umdrehungen_pro_sekunde,R,Fs,sound);
    % Signale, die von den Wänden reflektiert werden
    signal_w1 = reflektionsfaktor_w1 .* lesliesim(w1,c,umdrehungen_pro_sekunde,R,Fs,sound);
    signal_w2 = reflektionsfaktor_w2 .* lesliesim(w2,c,umdrehungen_pro_sekunde,R,Fs,sound);
    signal_w3 = reflektionsfaktor_w3 .* lesliesim(w3,c,umdrehungen_pro_sekunde,R,Fs,sound);
    % Gesamtsignal
    signal_ll = signal_hoerer + signal_w1 + signal_w2 + signal_w3;
    % Normalisieren des Signals auf einen Wert von 1
    signal_ll = signal_ll./max(signal_ll);

%Hier sollte das Problem liegen
   
       if j==1
          Slinks=signal_ll;
        elseif j==2
             Srechts=signal_ll;
       end
       
   matrix=[Slinks Srechts];


end

%ausgabe
wavplay(matrix,Fs);



Vielen Dank schonmal im voraus!
Bin mal gespannt was ich übersehen habe.

Helix
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.02.2010, 19:00     Titel:
  Antworten mit Zitat      
Hallo,

Code:
matrix=[Slinks Srechts];

schreibt Slinks und Srechts nebeneinander.

Eventueller Grund für das Problem: Slinks und Srechts sind keine Spalten, sondern Zeilenvektoren (1xn). Und dann ist nebeneinander natürlich nciht das beabsichtigte.
Mal in den Workspace schauen / Debugger laufen lassen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Helix
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.02.2010, 23:36     Titel:
  Antworten mit Zitat      
Vielen Dank,
Du hattest Recht, es waren 1xn Matrizen. Aber dank der Funktion
Code:
konnte ich das Problem schnell lösen!!!

Vielen Dank nochmal!

Helix
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.