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

Figure einladen und dann subplots erstellen

 

Localhorst
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 18.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.02.2008, 13:52     Titel: Figure einladen und dann subplots erstellen
  Antworten mit Zitat      
Hallo Forum,

ich beschäftige mich nun eine Weile mit MatLab habe aber noch viele Fragen und viel was ich mir anlesen muß.

Kommen wir nun zu meiner ersten konkreten Frage in diesem Forum:

Wärend eines Programmdurchlaufs werden diverse Graphen erstellen. Diese speicher ich jeweils mit saveas(m,'name_der_datei') als m File. Daraus entstehen dann zwei Dateien, eine m Datei, die aber nur einige Anweisungen (ähnlich einem Header)enthält und eine .fig Datei, die bei einem Doppelklick den jeweiligen Graphen in einem neuen Fenster öffnet.

Ich möchte nun gerne zB vier dieser Graphen aus den vorhandenen Dateien einladen und mit subplot zusammen auf einer DinA 4 Seite anzeigen lassen um sie dann aus zu drucken.

Mir fehlt leider ein Ansatz mit dem ich starten kann, ich kann PHP programmieren, besitze für MatLab aber nur Grundkenntnisse, deswegen wäre es nett, wenn ihr mich nicht gleich in der Luft zerpflückt.

Gruß
Localhorst
Private Nachricht senden Benutzer-Profile anzeigen


outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 19.02.2008, 20:37     Titel:
  Antworten mit Zitat      
etwas kryptisch, aber es funzt:
Nach dem start kannst Du 4 FIG-Files auswählen, die anschliessend in einem Figure angezeigt werden. Passe den Code ggbf. an:

Code:
fnames = uigetfile('*.fig','select FIG-Files','multiselect','on');
hmain = figure;
for i=1:4
   hfig = openfig(fnames{i},'new','invisible');
   haxes = findobj(hfig,'Type','Axes');
   hsub = subplot(2,2,i,'parent',hmain,'visible','on');
   set(copyobj(haxes,hmain),'position',get(hsub,'position'));
   delete([hfig hsub]);
end% for



MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
Localhorst
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 18.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.02.2008, 17:44     Titel:
  Antworten mit Zitat      
HI Outsider,

vielen Dank für deine Hilfe, habe den Code entsprechend angepaßt und es ging direkt!!!

Eine Frage habe ich aber noch, kann ich von den eingeladenen Bildern den Titel der über dem jeweiligen Diagram steht ändern?

Ich kann mit der Anweisung >> title ('test')
nur den Titel des ersten Subplots ändern, die anderen bleiben davon unbeeindruckt. Kannst du mir da evtl auch noch helfen?

Code:
function multiplot()

fnames = uigetfile('.\fig\*.fig','select FIG-Files','multiselect','on');
fnames = sort(fnames);
%anz_subplots = size(fnames);


hmain = figure;
set(hmain,'PaperType', 'A4')
set(hmain,'PaperOrientation', 'landscape')
size=get(hmain,'PaperSize')
set(hmain,'PaperPositionMode','manual')
set(hmain,'PaperPosition',[0.25 0.25 size(1)-0.5 size(2)-0.5])

for i=1:length(fnames)
fnames{i};
fig2open=['.\fig\' fnames{i}];
hfig = openfig(fig2open,'new','invisible');

haxes = findobj(hfig,'Type','Axes');
hsub = subplot(length(fnames),1,i,'parent',hmain,'visible','on');
set(copyobj(haxes,hmain),'position',get(hsub,'position'));
title  ('test')
delete([hfig hsub]);
end% for


print ('-depsc',hmain,'overv.eps');
 



Eine Verständnis Frage habe ich noch, nach dem du das Figure über openfig geöffnet hast, lädst du zuerst die Axen ein in den Handle haxes, das konnte ich auch im Debug Modus sehen, der eigentliche Graph kommt dann erst nach der Zeile

set(copyobj(haxes,hmain),'position',get(hsub,'position'));

dazu. Diese verstehe ich leider nicht ganz.

Vielen Dank schon einmal für deine Hilfe

Gruß
Localhorst
Private Nachricht senden Benutzer-Profile anzeigen
 
Fragender

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.03.2008, 13:35     Titel:
  Antworten mit Zitat      
Hallo, hätte das ganze jetzt probiert, mit folgender Fehlermeldung

??? Y argument must be numeric

Error in ==> C:\Dokumente\xxx\SUBPLOT.m
On line 1 ==> filename = uigetfile('*.fig','select FIG-Files','multiselect','on');

Woran kann das liegen??

MFG
 
skyline1891
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 11.11.08
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 11.11.2008, 21:36     Titel:
  Antworten mit Zitat      
Hallo liebe Kollegen,

ich bin ein ziemlicher Neuling in Matlab. Habe aber ein ähnliches Problem wie meine Vorgänger. Ich muss die *.fig dateien in einer figure z.B. als 2x2 Matrix positionieren. Leider bekomme ich mit dem untenstehenden Plot kein vernünftiges Ergebniss

Code:
fnames = uigetfile('*.fig','select FIG-Files','multiselect','on');

hmain = figure;

for i=1:length(fnames)

    hfig = openfig(fnames{i},'new','invisible');
   
    haxes = findobj(hfig,'Type','Axes');

    hsub = subplot(2,2,i,'parent',hmain,'visible','on');

    set(copyobj(haxes,hmain),'position',get(hsub,'position'));

end


Das Ergebniss sieht so aus (4 mal das gleiche Plot zum Testzwecken):



obwohl der Ausgangsplot so ausgesehen hat:



Möglicherweise kann mir jemand mit einem Rat weiterhelfen.

Vielen Dank im Voraus

f2b.jpg
 Beschreibung:

Download
 Dateiname:  f2b.jpg
 Dateigröße:  19.02 KB
 Heruntergeladen:  1593 mal
f1b.jpg
 Beschreibung:

Download
 Dateiname:  f1b.jpg
 Dateigröße:  45.77 KB
 Heruntergeladen:  1561 mal
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.