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

"imshow" spiegelt die Plotebene

 

Tutmanichtun
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 02.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.08.2019, 15:54     Titel: "imshow" spiegelt die Plotebene
  Antworten mit Zitat      
Hi zusammen,

ich versuche zur Zeit, gemessene Antennendiagramme mit Octave grafisch darzustellen. Das funktioniert so weit auch ganz wunderbar: ich habe ein Skript eines Studenten der Uni Duisburg gefunden, das die Umsetzung in Polarkoordinaten löst. Dies habe ich ein bisschen erweitert. Als letzten Schritt möchte ich nun den Plot mit einer Grafik des Gerätes hinterlegen, damit die räumliche Zuordnung deutlich wird.
Mit "imshow" klappt das auch soweit, aber: aus irgendeinem mir nicht ersichtlichen Grund wird dadurch alles, was anschließend über das Bild geplottet wird, horizontal gespiegelt! Leider kenne ich mich zu wenig aus, um überhaupt nach passenden Ideen suchen zu können. Ich habe mich ein bisschen an den axis handles versucht, aber das war leider Erfolglos. (Offensichtlich, sonst würde ich das hier ja nicht schreiben. Wink )
Im Anhang mal zwei Ausgabebilder des (vereinfachten) Plots und hier der abgespeckte Code dazu (das Bild wird in Zeile 30 eingebunden):
Code:
% polar_dBi makes plot of g versus phi
% based on the work of
% Hakan Cakmak, hakan.cakmak@<stud>.<uni-due>.<de>
% phi         = polar angles over [0,2*pi]
% gain        = gain (already in dB)
% rangedb       = maximum range for the plot
% rangedbmax  = maximum amplitute of gain circles
% rays        = number of rays, use series of 4

gain=linspace(-20,12,361);
phi=linspace(-pi,pi,361);
rangedb=40;
rangedbmax=15;
rays=4;

% scale gain
rangedbmin = rangedbmax-rangedb;        % define gain at center
gain1 = gain;                           % scaled values
gain1 = gain1 .* (gain1 > rangedbmin) + (rangedbmin) * (gain1 <= rangedbmin); % lowest is rangedb dB
gain1 = (gain1 + rangedb - rangedbmax)/rangedb;                               % scale to unity max.

phi0=linspace(0,2*pi,length(gain));   % angles of each gain value
x0 = sin(phi0);                       % gain circles
y0 = cos(phi0);

patch('xdata',x0,'ydata',y0, ...      % outer circle
     'edgecolor',[0.5,0.5,0.5],'facecolor','w');

hold on
imshow('pict.jpg',"xdata",[-0.8 0.8],"ydata",[-0.25 0.25]);

phi_s=linspace(0,2*pi,rays+1);
x_s = sin(phi_s); % rays
y_s = cos(phi_s);

for k=1:rays
     line([x_s(k)/rangedb,x_s(k)],...
        [y_s(k)/rangedb,y_s(k)]);
    text(1.1*x_s(k),1.1*y_s(k),...
        [num2str(phi_s(k)/pi*180) '\deg']);
end

h = plot(gain1.*sin(phi),gain1.*cos(phi));  % plot gain circle

axis square;
axis off

Gute Ideen sind gern gesehen. Smile

with_imshow.gif
 Beschreibung:
mit imshow-Befehl

Download
 Dateiname:  with_imshow.gif
 Dateigröße:  1.46 MB
 Heruntergeladen:  315 mal
without_imshow.gif
 Beschreibung:
ohne imshow-Befehl

Download
 Dateiname:  without_imshow.gif
 Dateigröße:  1.44 MB
 Heruntergeladen:  328 mal
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: 04.08.2019, 16:51     Titel: Re: "imshow" spiegelt die Plotebene
  Antworten mit Zitat      
Hallo Tutmanichtun,

Ich habe die Mail-Adresse in deinem Code mal ein bisschen unkenntlicher gemacht. Adressen im Internet zu veröffentlichen sorgt zielsicher dafür, dass sie mit Spams geflutet werden.

In Matlab spiegelt imshow ebenfalls an der Horizontalen. Dabei wird die Eigenschaft 'YDir' das axes Objekts auf 'reverse' gestellt. Versuche mal sie einfach wieder zurück zu setzen:
Code:
set(gca, 'YDir', 'normal')


Dies scheint bei Octave ebenfalls so zu sein: https://octave.org/doc/v4.2.1/Displaying-Images.html
Das Durchlesen der Hilfe-Texte kann ich nur wärmstes empfehlen.

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

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 02.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.08.2019, 11:18     Titel:
  Antworten mit Zitat      
Wunderbar, du hast recht! Vielen lieben Dank. Den Absatz habe ich eindeutig übersehen, Entschuldigung. -.-
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.