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

Array aufspalten

 

Gain

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.06.2008, 19:11     Titel: Array aufspalten
  Antworten mit Zitat      
Hallo zusammen,

ich habe folgendes problem:

ich möchte ein Array mit folgender Inhalt

ans =

0.1500 66.0000 0.5000 56.0000
0.5000 56.0000 5.0000 56.0000
5.0000 60.0000 30.0000 60.0000

so aufspalten das ich beispielsweise die Werte von der Spalte 1 und 3 in einen seperaten zelle speichere und die Werte von der Spalte 2 und 4 in einem anderen Zelle speichere. Die Werte in den spalten 1 und 3 sind Frequenzwerte in MHz und die in den Spalten 2 und 4 die dazu gehörigen Amplituenwerte. Anschließend möchte ich die DAten ausplotten.

Ich bin für jede Hilfe dankbar.


Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.06.2008, 20:16     Titel:
  Antworten mit Zitat      
Code:

f=ans(1:3,1:2:3)

a=ans(1:3,2:2:4)

 


der erste teil 1:3 geht die zeilen von 1-3 ab mit einer schrittweite von 1.
Für die Frequenz sind die ungeraden Spalten relevant, deswegen Startpunkt 1, damit die geraden übersprungen werden die Schrittweite auf 2 und den Endwert eintragen. Hier 3 bzw. kannst auch 4 nehmen, die wird ja sowieso übersprungen und nicht genutzt.
Für die Amplitude ist es dann fast identisch, nur das du die geraden Spaltennummern benötigst. Deswegen den Startwert auf 2.
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.06.2008, 20:27     Titel:
  Antworten mit Zitat      
sorry, hab überlesen das du die werte auch plotten willst
Dann sollten die werte in einer Zeile bzw. Spalte angeordnet sein, das geht so:

Code:


f=[ans(1:3,1);X(1:3,3)]';
a=[ans(1:3,2);X(1:3,4)]';

plot(f,a)

 


unterschied zum vorherigen Beispiel, es wird jeweils nur eine Spalte ausgelesen und dann miteinander verknüpft werden
 
keloid
Forum-Century

Forum-Century


Beiträge: 216
Anmeldedatum: 04.10.07
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 20.06.2008, 09:17     Titel:
  Antworten mit Zitat      
Alternativ laesst sich auch schreiben
Code:
f = ans(:,1:2:3);
a = ans(:,2:2:4);
plot(f(:,1),a(:,1),f(:,2),a(:,2))
 


Durch Verwendung den Doppelpunkts werden die Elemente aller Zeilen ausgewaehlt, so dass der Code flexibler wird.
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.