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

Matrizen einer Schleife als Zelle zusammenfassen

 

Kia
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 89
Anmeldedatum: 02.09.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2011, 16:34     Titel: Matrizen einer Schleife als Zelle zusammenfassen
  Antworten mit Zitat      
Hallo zusammen

was wäre ein Tag ohne eine Frage von mir:D so langsam fange ich Spass mit Matlab zu haben auch wenn ich mit Zellen und Struct nicht wirklich klar komme!


nun mal zur Frage:
ich kann mit folgendem Befehl Daten via data acquisition tools aufnehmen
Code:
[data,time] = getdata(AIVoice);

Als Ergebnis bekomme ich 2 Vektoren (time und data)

Nun möchte ich dies als eine Schleife schreiben und die Ergebnisse in einer Zelle absichern! ich kriege aber nur die "data" abgepeichert und nicht die "time
Code:

for i=1:10
   DATA{i}=getdata(AIVoice);
end
 

Das ergebniss ist entsprechend eine celle mit 10 Vektoren (gleicher Länge)!
Wie kann ich die "time" ebenfalls "aufnehmen"?
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 19.01.2011, 16:52     Titel:
  Antworten mit Zitat      
Hallo,
data und time in einer Celle abspeichern, wird in einem Schritt nicht klappen.
etwas in die Richtung muss man das machen:
Code:

for i=1:10
   [data,time]=getdata(AIVoice);
   DATA{i}= [data,time];
end
 


Macht das überhaupt Sinn immer das gleiche abzuspeichern?
Private Nachricht senden Benutzer-Profile anzeigen
 
Kia
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 89
Anmeldedatum: 02.09.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.01.2011, 11:03     Titel:
  Antworten mit Zitat      
Hallo Deny, danke für deinen Vorschlag! es funktioniert bestens

Übrigens ich nehme nicht immer dasselbe auf! meine Soundkarte ist in software modus konfiguiert und nimmt immer dann die Werte für gewisse Dauer auf, wenn die Spannung am Eingang über einen vorgegebenen Wert liegt!
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 20.01.2011, 12:00     Titel:
  Antworten mit Zitat      
Hallo

Zitat:
Übrigens ich nehme nicht immer dasselbe auf! meine Soundkarte ist in software modus konfiguiert und nimmt immer dann die Werte für gewisse Dauer auf, wenn die Spannung am Eingang über einen vorgegebenen Wert liegt!

Alles Klar, habe einfach überlesen, dass du Data Acquisition Toolbox nutzt und anliegenden Signal ausliest.
Private Nachricht senden Benutzer-Profile anzeigen
 
Kia
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 89
Anmeldedatum: 02.09.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.02.2011, 15:42     Titel: weitere Fragen zur Zelle und Matrizen
  Antworten mit Zitat      
Nun versuche ich nach derselben Methode einen anderen Befehl auszuüben. Wenn ich eine einzige Spalte einer MAtrix berechne führe ich folgenden Befehl aus
Code:
[Y,F]=pwelch(data(:,1),1024,512,1024,Fs);

Die Ergebnisse sind dann 2 Vektoren für Y und F. in meinem Fall ist die Dimension 513 x1

Wenn ich jedoch versuche den o.g. Befehl für alle Spalten der Matrix (16383 x 16) nacheinander durchzuführen um entsprepchend eine Matrizen für Y und F zu bekommen, erhalte ich folgende Fehlermeldung:
Code:
for k=1:size(data,2)
[Y,F]=pwelch(data(:,k),1024,512,1024,Fs);
Y{i}=[Y];
F{i}=[F];
end

Zitat:

??? Cell contents assignment to a non-cell array object.

und außerdem habe ich es so versucht
Code:

for k=1:size(data,2)
[Y,F]=pwelch(data(:,k),1024,512,1024,Fs);
Y(:,k)=Y;
%F(:,k)=F;   % F ist für alle Y dasselbe und braucht eigentlich nur einmal berechnet zu werden
end
 

ich bekomme in diesem Fall zwar die gesuchte Matrix mit der richtigen Dimension (512 x 16) aber die Werte stimmen ganz und gar nicht

weiss jemand was ich da falsch mache?
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 05.02.2011, 02:21     Titel: Re: weitere Fragen zur Zelle und Matrizen
  Antworten mit Zitat      
Hallo Kia,

Zitat:
Code:
for k=1:size(data,2)
[Y,F]=pwelch(data(:,k),1024,512,1024,Fs);
Y{i}=[Y];
F{i}=[F];
end

Hier überschreibst Du Y mit Y. Entweder Du nimmst zwei verschiedene Variablen, etwa Ycell und Y, oder Du schreibst direkt in die Cell:
Code:

Y = cell(1, size(data, 2));  % Pre-allocate!
F = cell(1, size(data, 2));  % Pre-allocate!
for k=1:size(data, 2)
[Y{i}, F{i}] = pwelch(data(:,k), 1024, 512, 1024, Fs);
end

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Kia
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 89
Anmeldedatum: 02.09.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.02.2011, 15:11     Titel:
  Antworten mit Zitat      
Oha, manchmal ist man echt blind und macht "interessanten" Fehler
alles klar besten Dank, es hat funktioniert
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 - 2025 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.