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

View Befehl geht nicht

 

Sani
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 03.09.09
Wohnort: Neu-Ulm
Version: R2007b
     Beitrag Verfasst am: 10.09.2009, 16:10     Titel: View Befehl geht nicht
  Antworten mit Zitat      
Hallo zusammen,

habe einen Code geschrieben (auf den ich als Anfänger fast schon stolz bin) der soweit auch super funtioniert bis auf die Tatsache dass der view-Befehl am Schluss ums verrecken nicht gehen will.

Code:

clear all
close all

%Datei einlesen
 load data_test;

 TANGLES=(diff_values_matrix_mod(data_test,1).*pi/180);            % auslesen der verschiedenen theta-Winkel
 PANGLES=(diff_values_matrix_mod(data_test,2)*pi/180);            % auslesen der verschiedenen phi-Winkel
 r_max=(abs(max(data_test(:,3))));                     % erkennen maximaler Radius
 r=data_test(:,3);

% Globale Variablen
 c=1.4;                                    % Zuschlag 10% zu maximalem Radius in der Bodenkontur
 d=10;                                    % Teiler von r_max
 e=1.45;                                    % Abstand der Winkelbeschriftung
 f=pi/12;                                    % 15° - Aufteilung der Vollkreises
 g=15;                                    % entspricht 180°/12 --> unmittelbar mit f verknüpft!!  

%Gitter erzeugen
 phi=(data_test(:,2)*pi/180);                           % azimuth, "horizontal"
 theta=(data_test(:,1)*pi/180);                        % elevation "vertikal"
 [PHI,THETA] = meshgrid(PANGLES,TANGLES);
 %RADIUS=reshape(data_test(:,3),size(TANGLES),size(PANGLES));      % Spaltenvektor Radius umformen für meshgrid; nicht interpolierte Lösung
 RADIUS=griddata(phi,theta,r,PHI,THETA,'linear');               % Linear interpolierte Lösung  

% Umrechnen sphärisch --> kartesisch
 y = RADIUS.*cos(PHI).*cos(THETA);
 x = RADIUS.*sin(PHI).*cos(THETA);
 z = RADIUS.*sin(THETA);

% Erstellen Bodenkontur
 % Kreise                                    % Plotten der Kreise
   clf                                       % Figur löschen, Fenster offen halten
   p=(0:f:2*pi);                                 % 15° Schritte im Bogenmaß
   for n=(0:r_max/(c*d):r_max*c)                        % schleifenindex von 0 bis 110% vom Radius in 10% Schritten
     plot3(n*cos(p),n*sin(p),(-ones(1,length(p)))-(r_max*c),"k")         % Plot der Kreise in der XY-Ebene
     hold on
     plot3((-ones(1,length(p))-r_max*c),n*cos(p),n*sin(p),"k")         % Plot der Kreise in der YZ-Ebene
     hold on
     plot3(n*cos(p),(-ones(1,length(p)))-r_max*c,n*sin(p),"k")         % Plot der Kreise in der XZ-Ebene
   endfor

 % radiale Linien                                 % Plotten der radialen Linien
   m=(0:r_max/(c*d):r_max*c);                        % schleifenindex von 0 bis 110% vom Radius in 10% Schritten
   for n=0:f:2*pi                                 % 15° Schritte im Bogenmaß  
     plot3(m.*cos(n),m.*sin(n),(-ones(1,length(m))-(r_max*c)),"k")      % Plot der Linien in der XY-Ebene
     hold on
     plot3((-ones(1,length(m))-r_max*c),m.*cos(n),m.*sin(n),"k")         % Plot der Linien in der YZ-Ebene
     hold on
     plot3(m.*cos(n),(-ones(1,length(m))-r_max*c),m.*sin(n),"k")         % Plot der Linien in der XZ-Ebene
     hold on
   endfor
   
 % Beschriftungen an den radialen Linien
   j=0;                                    % lokale Zählvariable
   k=-90;
   l=75;
   for i=(0:f:(2*pi)-(pi/24))
     text(r_max*e*cos(i),r_max*e*sin(i),(-r_max*c),num2str(j*g),'Fontsize',8);   % Beschriftung Kreis in der XY-Ebene (azimuth)
     j=j+1;
   endfor
   for i=(-pi/2:f:pi/2)  
     text(r_max*e*cos(i),-r_max*c,r_max*e*sin(i),num2str(k),'Fontsize',8);   % Beschriftung Kreis in der XZ-Ebene (elevation 1. Seite)      
     k=k+g;
   endfor
   for i=(pi/2+f:f:3*pi/2-f)  
     text(r_max*e*cos(i),-r_max*c,r_max*e*sin(i),num2str(l),'Fontsize',8);   % Beschriftung Kreis in der XZ-Ebene (elevation 2. Seite)      
     l=l-g;
   endfor
   k=-90;                                    % Redefinition für neuen Schleifendurchgang
   l=75;                                    % Redefinition für neuen Schleifendurchgang
   for i=(-pi/2:f:pi/2)  
     text(-r_max*c,r_max*e*cos(i),r_max*e*sin(i),num2str(k),'Fontsize',8);   % Beschriftung Kreis in der YZ-Ebene (elevation 1. Seite)      
     k=k+g;
   endfor
   for i=(pi/2+f:f:3*pi/2-f)  
     text(-r_max*c,r_max*e*cos(i),r_max*e*sin(i),num2str(l),'Fontsize',8);   % Beschriftung Kreis in der YZ-Ebene (elevation 2. Seite)      
     l=l-g;
   endfor

% Datenplott
  surf(x,y,z,RADIUS)                              % Plotten der Hauptkurve
  title ("Leistungsspektrum fiktive Daten");
  shading('interp');
  hold on
  mesh(x,y,(-ones(size(z))*r_max*c),RADIUS)                  % Plotten der Projektion auf der XY-Ebene
  hold on
  mesh((-ones(size(x))*r_max*c),y,z,RADIUS)                  % Plotten der Projektion auf der YZ-Ebene
  hold on
  mesh(x,(-ones(size(y))*r_max*c),z,RADIUS)                  % Plotten der Projektion auf der XZ-Ebene
  hold on
  axis off                                    % Achsen KoordSys aus
  xlabel('x-Achse');                              % Beschriftung x-Achse
  ylabel('y-Achse');                              % Beschriftung y-Achse
  zlabel('z-Achse');                              % Beschriftung z-Achse            
  grid off                                    % Gitternetzlinien aus
  view([50 135]);

 


Habe zwei Schreibweisen getestet:

Code:

view(50,135);
view([50 135]);
 


Keine geht. Wo ist mein Fehler?

Zum besseren Verständnis was der code macht habe ich ein Picture angehängt.
Daten kann ich leider keine raus geben....

Grüße

Sani

plot.gif
 Beschreibung:

Download
 Dateiname:  plot.gif
 Dateigröße:  31.44 KB
 Heruntergeladen:  537 mal
Private Nachricht senden Benutzer-Profile anzeigen


Olli
Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 19.08.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.09.2009, 22:53     Titel:
  Antworten mit Zitat      
mach mal das ";" hinter "view" weg vielleicht funzt es dann. In Matlab unterdrückt soviel ich weiß das ";"-Zeichen die Ausgabe. Ansonsten müßte ich nur raten und würde drauf tippen das eventuell dein Rechner etwas lahm ist und länger zum berechnen der Ansicht braucht???
Private Nachricht senden Benutzer-Profile anzeigen
 
Sani
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 03.09.09
Wohnort: Neu-Ulm
Version: R2007b
     Beitrag Verfasst am: 10.09.2009, 22:55     Titel:
  Antworten mit Zitat      
Probier ich mal auch wenn das äußerst kurios wär...
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 11.09.2009, 09:00     Titel:
  Antworten mit Zitat      
VIEW funktioniert auch mit Semikolon am Ende. Die Unterdrückung der Ausgabe bezieht sich auf das Command Window.

Ohne die Daten (MAT file) kann ich den Code nicht laufen lassen, aber vielleicht geht es ja auch mit dem SURF(PEAKS) Besipiel.

Code:

surf(peaks)
view(50,135);
% view([50 135]); %egal
 


"Geht nicht" ist keine gute Beschreibung. Was geht nicht?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Sani
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 03.09.09
Wohnort: Neu-Ulm
Version: R2007b
     Beitrag Verfasst am: 11.09.2009, 09:54     Titel:
  Antworten mit Zitat      
Geht nicht heisst das - egal welche winkel ich einstelle - der plot sich nur so darstellt wie auf dem bild im anhang
Private Nachricht senden Benutzer-Profile anzeigen
 
Olli
Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 19.08.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2009, 17:28     Titel:
  Antworten mit Zitat      
achso ich bin davon ausgegangen das es nicht aufgebaut wird.
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 11.09.2009, 21:39     Titel:
  Antworten mit Zitat      
Dann bin ich ohne data_test.mat ratlos.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 12.09.2009, 14:19     Titel:
  Antworten mit Zitat      
ich hattes mal im 7.1 unter XP, dass beim view der falsche eingestellt wurde, da waren 2 plots offen, trisurfs drinnen, bei einem gings, beim anderen nicht.

Kannst du den Plot mit den Plot-Dreh-Zeiger (also, wenn du in der plotleiste auf den Kreis mit kleinem Pfeil klickst) drehen ?
Private Nachricht senden Benutzer-Profile anzeigen
 
Sani
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 03.09.09
Wohnort: Neu-Ulm
Version: R2007b
     Beitrag Verfasst am: 12.09.2009, 15:46     Titel:
  Antworten mit Zitat      
ja drehen kann ich den plot mit der maus
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 12.09.2009, 17:11     Titel:
  Antworten mit Zitat      
view dreht nur an einer Achse, teilweise ist der Aufbau wenn man versch. plotroutinen nutzt schon durchwachsen.
Probier einfach mal alle Axes aus, das müssten die ersten children des gcf sein, glaube ich. Musst halt einfach nach allem mit xAxisLabel und so suchen. Wenn du dort mehrere hast, würd ich einfach mal alle durchprobieren. also mit view(ax,...) lt hilfe
Private Nachricht senden Benutzer-Profile anzeigen
 
Sani
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 03.09.09
Wohnort: Neu-Ulm
Version: R2007b
     Beitrag Verfasst am: 14.09.2009, 12:34     Titel:
  Antworten mit Zitat      
muss mal blöd nachfragen:

was meinst du mit children und mit gcf??

anbei mal eine fiktive data_test.mat und das m-file der funktion die aufgerufen wird.

bei der data_test müsst ihr die endung wieder korrigieren (.txt löschen)!

vllt könnt ihr mir nebenbei noch sagen wasrum der code so verflixt lahm ist....

greez

sani

data_test.mat.txt
 Beschreibung:
bitte die endun txt entfernen!

Download
 Dateiname:  data_test.mat.txt
 Dateigröße:  12.29 KB
 Heruntergeladen:  712 mal
diff_values_matrix_mod.m
 Beschreibung:

Download
 Dateiname:  diff_values_matrix_mod.m
 Dateigröße:  923 Bytes
 Heruntergeladen:  480 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 14.09.2009, 12:55     Titel:
  Antworten mit Zitat      
Hallo sani,

gerade dachte ich, "hurra er schickt ein Beispiel". Dann versuchte ich es auszuprobieren. Das MAT file ist ein ASCII file. Die Hochkomma und die ENDFOR / ENDIF Befehle zeigen mir, dass das Ganze noch nie in MATLAB gelaufen ist. Und wenn ich dann diff_values_matrix_mod.m so ummodele, dass es läuft, braucht es weniger als eine Millisekunde.

Ich würde mich freuen zu helfen, aber das erschwert es doch sehr.

Andreas

diff_values_matrix_mod.m
 Beschreibung:

Download
 Dateiname:  diff_values_matrix_mod.m
 Dateigröße:  952 Bytes
 Heruntergeladen:  467 mal
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Sani
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 03.09.09
Wohnort: Neu-Ulm
Version: R2007b
     Beitrag Verfasst am: 14.09.2009, 13:29     Titel:
  Antworten mit Zitat      
versteh ich gerade nicht. hab das aus excel raus in ne *.mat umgewandelt.

nachdem ich aber keine mat dateien anhängen kann hab ich es alt txt erweitert. wenn du das txt wieder weg löschst ist es doch wieder eine mat datei, oder??

das endfor endif kommt daher weil ich im moment noch auf meine firmenlizenz für matlab warte und daher at moment in octave schreibe... -- das diese commands in matlab nicht gehen wusste ich net - wie gesagt bin ein neuling und hab mich da halt rein gelesen....

das das script geht sieht man ja in meinem ersten post, sowas zeichne ich bestimmt net mit paint um leute zu veräppeln Wink


zu deinen änderungen:

was macht denn tic und toc? zeigt dir das die rechenzeit an?
Private Nachricht senden Benutzer-Profile anzeigen
 
Sani
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 03.09.09
Wohnort: Neu-Ulm
Version: R2007b
     Beitrag Verfasst am: 15.09.2009, 08:04     Titel:
  Antworten mit Zitat      
code läuft, danke an alle die sich einen kopf gemacht haben!

worans gelegen hat weiss ich im endeffekt nicht

befehl wird jetzt ganz normal aufgerufen

Code:


Danke!
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.