Matlab-tips Matlab Guide För att underlätta programmerandet av Grafiska användargränssnitt (GUI Graphical User Interface) så finns en modul i Matlab som heter Guide och där kan man rita upp sitt användargränsnitt och fylla i önskade rutiner (via svarsfunktioner i motsvarande.m-fil) som ska utföras då användaren angett något. >> guide Ger följande: 1
Och efter standardvalet Blank så får man möjlighet att använda ritverktyg: Och efter val av t ex en skjutpotentiometer (slider) som ritas upp 2
och dubbelklick på den så kommer egenskapseditorn (property inspector) fram: 3
Och ändra ev egenskaper där. Man kan nå grafikobjekt via så kallade handtag (handles) som är en slags pekare(adress) till objekten. Lägg till önskad kod (här v=get(hobject,'value') ) i motsvarande.m-fil under rubriken Callback: och spara samt provkör din kod med den gröna pilen uppe till höger eller genom att skriva namnet direkt i promptern: >> slide Den tredje parametern handles kan användas för att nå andra gui-object via namn: V = get(handles.button1, Value ) Man kan även skapa menyer och menyval. Högerklick ger tillgång till en Contextmeny och genom att hålla musen över ett menyval kan man få se hjälptext via Tooltipstring. Man kan ändra muspekarens utseende med PointerShapeCData. Andra finesser inom gui-området är t ex (läs mer om dem via HELP fcn) Skapa ett meddelandefönster Gör en markering att saker händer msgbox( meddelande, titel, help ) waitbar(värdemellannollochett, beräkning pågår.. ) 4
Kolla vilka typsnitt som finns listfonts MATLAB-grafik >> image % visar en bild på en uppånervänd pojke >> hl=line([10,5],[20,30]) % ritar en linje. Sparar ett handtag i hl hl = 159.0010 >> get(hl) % laser av linjens egenskaper Color = [0 0 1] EraseMode = normal LineStyle = - LineWidth = [0.5] Marker = none MarkerSize = [6] MarkerEdgeColor = auto MarkerFaceColor = none XData = [10 5] YData = [20 30] ZData = [] BeingDeleted = off ButtonDownFcn = Children = [] Clipping = on CreateFcn = DeleteFcn = BusyAction = queue HandleVisibility = on HitTest = on Interruptible = on Parent = [158.001] Selected = off SelectionHighlight = on Tag = Type = line UIContextMenu = [] UserData = [] Visible = on >> set(hl,'color','black') % sätter en egenskap >> set(hl,'xdata',[40 50]) % flyttar linjen och kan användas för animeringar >> set(hl,'ydata',[25 35]) 5
42 40 38 36 34 32 30 28 26 24 22 5 10 15 20 25 30 35 >> hp=patch([8 12 34],[23 36 42],'b') % ritar en blå polygon >> axis off % stänger av axlarna imread() %importerar jpg, gif, png, bmp mm bildfiler text() %placerar en text Det finns många färdiga programrutiner i Matlab och här nedan ger vi ett axplock på sånt som kan vara bra att känna till (läs mer via Help): LJUD Gör ett litet pip beep Ex på hur man kan använda ljud: Load train Whos % kolla vilka variabler som finns Sound(yvärden,frekvens) INTERNET Läs av textfil från url Skicka ett mail TID Vänta en stund urlread() sendmail() pause(sekunder) 6
Ta tid Läsa av klockan tic, toc fix(clock) BILD Läs av egenskaper hos en bild imfinfo Matlab har många bildbehandlingrutiner GRAFIK Rita kurvor plot Skuggning shading Belysning light Rita en kurva med yta surf Hämta en koordinat från användaren Behåll info i en figur hold on Plotta i 3D plot3 Hantera axlar axis, axes Gör en animerad plot comet Rotera en figur rotate Delfigurer subplot Sudda figur clf Handtag till nuvarande figur ginput gcf Hur själva uppritandet ska gå till sköts av Renderer och man kan välja Doublebuffer mellan painter(default), zbuffer (vilken kan ge mindre flimmer) och OpenGL som är mycket avancerad men resurskrävande. KAMERA Matlab kan ändra vy-punkten på t ex en 3D-plot cameramenu FÄRGHANTERING Välj vilka färger man ska arbeta med VIDEO Fånga en bild från skärmen Spela upp en film colormapeditor getframe movie 7