Hoffe bin hier richtig. Also ich programmiere nun seit 4 Stunden das erste mal ein Matlab script und Matlab im allgemienen. Ich habe hüppelweise Messwerte mit einem LMG aufgenommen und baue nun ein Script das mir möglichst einfach die Werte aus einer Excel Datei ausliest, bearbeitet und wieder reinschriebt. Wollte auch erst noch das es direkt auch Graphen macht aber das funktioniert nicht richtig und habs dann sein gelassen. Nun 2 Fragen. 1: Ich habe eine 500x2 Matrix in Matlab 1. Spalte Frequenz 2.Spalte Impedanz Da ich nun aber nicht alle Frequenzen in meinem Diagramm haben möchte, würde ich gerne die Matrix Filtern. Also z.B. die 10 Größten Impedanzwerte mit passender Frequenz. Wie sähe dazu der Code aus ich finde bzw verstehe die Syntax noch nicht so ganz zu dieser max() funktion. 2: Kann man in Excel einen ablauf "vorklicken" das daraus ein Script erstellt wird, was mir die Graphen macht (Werte liegen immer an der gleichen Stelle). Oder weiß jemand wie es in Matlab richtig geht? (EXCEL 2007) also xlsgraph() geht nicht... :( Und das würde mir die arbeit verleichtern wie kann ich z.b: eine .csv Datei benutzen und dann als Excel Datei wieder speichern? Achja mein Code bisher: [fileName filePath] = uigetfile('*', 'Select data file', '.'); if filePath==0, error('None selected!'); end File =[filePath fileName]; sheet= fileName(1:end-5); FREQ=xlsread(File,sheet,'A6:A505'); IL1=xlsread(File,sheet,'B6:B505'); IL1PHI=xlsread(File,sheet,'H6:H505'); IL1PHIRAD=IL1PHI*(pi/180); IL1KOMP=(IL1.*cos(IL1PHIRAD))+(IL1.*sin(IL1PHIRAD))*1i; IL2=xlsread(File,sheet,'B6:B505'); IL2PHI=xlsread(File,sheet,'H6:H505'); IL2PHIRAD=IL2PHI*(pi/180); IL2KOMP=(IL2.*cos(IL2PHIRAD))+(IL2.*sin(IL2PHIRAD))*1i; IL3=xlsread(File,sheet,'B6:B505'); IL3PHI=xlsread(File,sheet,'H6:H505'); IL3PHIRAD=IL3PHI*(pi/180); IL3KOMP=(IL3.*cos(IL3PHIRAD))+(IL3.*sin(IL3PHIRAD))*1i; IU=xlsread(File,sheet,'B6:B505'); IUPHI=xlsread(File,sheet,'H6:H505'); IUPHIRAD=IUPHI*(pi/180); IUKOMP=(IU.*cos(IUPHIRAD))+(IU.*sin(IUPHIRAD))*1i; IV=xlsread(File,sheet,'B6:B505'); IVPHI=xlsread(File,sheet,'H6:H505'); IVPHIRAD=IVPHI*(pi/180); IVKOMP=(IV.*cos(IVPHIRAD))+(IV.*sin(IVPHIRAD))*1i; IW=xlsread(File,sheet,'B6:B505'); IWPHI=xlsread(File,sheet,'H6:H505'); IWPHIRAD=IWPHI*(pi/180); IWKOMP=(IW.*cos(IWPHIRAD))+(IW.*sin(IWPHIRAD))*1i; UL1=xlsread(File,sheet,'N6:N505'); UL1PHI=xlsread(File,sheet,'T6:T505'); UL1PHIRAD=UL1PHI*(pi/180); UL1KOMP=UL1.*cos(UL1PHIRAD)+(UL1.*sin(UL1PHIRAD))*1i; UL2=xlsread(File,sheet,'N6:N505'); UL2PHI=xlsread(File,sheet,'T6:T505'); UL2PHIRAD=UL2PHI*(pi/180); UL2KOMP=UL2.*cos(UL2PHIRAD)+(UL2.*sin(UL2PHIRAD))*1i; UL3=xlsread(File,sheet,'N6:N505'); UL3PHI=xlsread(File,sheet,'T6:T505'); UL3PHIRAD=UL3PHI*(pi/180); UL3KOMP=UL3.*cos(UL3PHIRAD)+(UL3.*sin(UL3PHIRAD))*1i; UU=xlsread(File,sheet,'N6:N505'); UUPHI=xlsread(File,sheet,'T6:T505'); UUPHIRAD=UUPHI*(pi/180); UUKOMP=UU.*cos(UUPHIRAD)+(UU.*sin(UUPHIRAD))*1i; UV=xlsread(File,sheet,'N6:N505'); UVPHI=xlsread(File,sheet,'T6:T505'); UVPHIRAD=UVPHI*(pi/180); UVKOMP=UV.*cos(UVPHIRAD)+(UV.*sin(UVPHIRAD))*1i; UW=xlsread(File,sheet,'N6:N505'); UWPHI=xlsread(File,sheet,'T6:T505'); UWPHIRAD=UWPHI*(pi/180); UWKOMP=UW.*cos(UWPHIRAD)+(UW.*sin(UWPHIRAD))*1i; ZL1KOMP=UL1KOMP./IL1KOMP; ZL1BET=abs(ZL1KOMP); ZL1VERS=angle(ZL1KOMP); ZL1KOMPREAL=real(ZL1KOMP); ZL1KOMPIM=imag(ZL1KOMP); ZL2KOMP=UL2KOMP./IL2KOMP; ZL2BET=abs(ZL2KOMP); ZL2VERS=angle(ZL2KOMP); ZL2KOMPREAL=real(ZL2KOMP); ZL2KOMPIM=imag(ZL2KOMP); ZL3KOMP=UL3KOMP./IL3KOMP; ZL3BET=abs(ZL3KOMP); ZL3VERS=angle(ZL3KOMP); ZL3KOMPREAL=real(ZL3KOMP); ZL3KOMPIM=imag(ZL3KOMP); ZUKOMP=UUKOMP./IUKOMP; ZUBET=abs(ZUKOMP); ZUVERS=angle(ZUKOMP); ZUKOMPREAL=real(ZUKOMP); ZUKOMPIM=imag(ZUKOMP); ZVKOMP=UVKOMP./IVKOMP; ZVBET=abs(ZVKOMP); ZVVERS=angle(ZVKOMP); ZVKOMPREAL=real(ZVKOMP); ZVKOMPIM=imag(ZVKOMP); ZWKOMP=UWKOMP./IWKOMP; ZWBET=abs(ZWKOMP); ZWVERS=angle(ZWKOMP); ZWKOMPREAL=real(ZWKOMP); ZWKOMPIM=imag(ZWKOMP); ZKOMALL=[FREQ ZL1KOMP]; %ZKOMBIG= xlswrite(File,{'Frequenz'} ,'matlab','A1'); xlswrite(File,FREQ ,'matlab','A2'); xlswrite(File,{'ZL1 Komplex'} ,'matlab','B1'); xlswrite(File,{'ZL1 Realteil'} ,'matlab','C1'); xlswrite(File,{'ZL1 Imaginärteil'} ,'matlab','D1'); xlswrite(File,ZL1KOMP ,'matlab','B2'); xlswrite(File,ZL1KOMPREAL ,'matlab','C2'); xlswrite(File,ZL1KOMPIM ,'matlab','D2'); xlswrite(File,{'ZL2 Komplex'} ,'matlab','E1'); xlswrite(File,{'ZL2 Realteil'} ,'matlab','F1'); xlswrite(File,{'ZL2 Imaginärteil'} ,'matlab','G1'); xlswrite(File,ZL2KOMP ,'matlab','E2'); xlswrite(File,ZL2KOMPREAL ,'matlab','F2'); xlswrite(File,ZL2KOMPIM ,'matlab','G2'); xlswrite(File,{'ZL3 Komplex'} ,'matlab','H1'); xlswrite(File,{'ZL3 Realteil'} ,'matlab','I1'); xlswrite(File,{'ZL3 Imaginärteil'} ,'matlab','J1'); xlswrite(File,ZL3KOMP ,'matlab','H2'); xlswrite(File,ZL3KOMPREAL ,'matlab','I2'); xlswrite(File,ZL3KOMPIM ,'matlab','J2'); xlswrite(File,{'ZU Komplex'} ,'matlab','K1'); xlswrite(File,{'ZU Realteil'} ,'matlab','L1'); xlswrite(File,{'ZU Imaginärteil'} ,'matlab','M1'); xlswrite(File,ZUKOMP ,'matlab','K2'); xlswrite(File,ZUKOMPREAL ,'matlab','L2'); xlswrite(File,ZUKOMPIM ,'matlab','M2'); xlswrite(File,{'ZV Komplex'} ,'matlab','N1'); xlswrite(File,{'ZV Realteil'} ,'matlab','O1'); xlswrite(File,{'ZV Imaginärteil'} ,'matlab','P1'); xlswrite(File,ZVKOMP ,'matlab','N2'); xlswrite(File,ZVKOMPREAL ,'matlab','O2'); xlswrite(File,ZVKOMPIM ,'matlab','P2'); xlswrite(File,{'ZW Komplex'} ,'matlab','Q1'); xlswrite(File,{'ZW Realteil'} ,'matlab','R1'); xlswrite(File,{'ZW Imaginärteil'} ,'matlab','S1'); xlswrite(File,ZWKOMP ,'matlab','Q2'); xlswrite(File,ZWKOMPREAL ,'matlab','R2'); xlswrite(File,ZWKOMPIM ,'matlab','S2');
Noy schrieb: > 1: Ich habe eine 500x2 Matrix in Matlab 1. Spalte Frequenz 2.Spalte > Impedanz > > Da ich nun aber nicht alle Frequenzen in meinem Diagramm haben möchte, > würde ich gerne die Matrix Filtern. Also z.B. die 10 Größten > Impedanzwerte mit passender Frequenz. > > Wie sähe dazu der Code aus ich finde bzw verstehe die Syntax noch nicht > so ganz zu dieser max() funktion. Dafür dürfte sortrows besser geeignet sein als max. Für Dich wäre:
1 | B = sortrows(A,-2) |
passend. Zur Erklärung: sortrows sortiert die Matrix A anhand der im zweiten Argument angegebenen Spalte (Das Minus bedeutet eine Sortierung in Absteigender Reihenfolge). Ich empfehle an dieser Stelle mal wieder die vorzügliche Hilfe von Matlab. Zu 2. kann ich Dir nicht helfen, da meine Excel-Kentnisse nur rudimentär sind.
wenn schon matlab warum auch nicht gleich das diagramm erzeugen? die matlab-plots sind (meiner meinung nach) auch wesentlich schöner als das excel-zeugs (und können auch als vektorgraphik exportiert werden)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.