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

Bar3-Plot streikt

 

Sauwa
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 14.07.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2014, 14:27     Titel: Bar3-Plot streikt
  Antworten mit Zitat      
Hallo!

Ich möchte das Modal Assurance Criterion (MAC) einer Modalanalyse ploten.
Mit der Matrix A funktioniert es einwandfrei.
Mit der Matrix B aber nicht. Also das figure geht auf aber es wird nichts angezeigt.

A=
0.8236 0.1507 0.4148 0.2676
0.1507 0.8236 0.2676 0.4148
0.6191 0.3531 0.9237 0.5495
0.3531 0.6191 0.5495 0.9237

B=
1 0.0076 1.718e-04 1.752e-04
0.0076 1 1.752e-04 1.718e-04
1.718e-04 1.752e-04 1 1.735e-04
1.752e-05 1.718e-04 1.735e-04 1


Bitte helft mir bevor ich was in den Bildschirm werfe!!!!!!


Vielleicht könnt ihr die Matrixstruktur erahnen, ich weiß nicht wie ich hier Leerzeichen setzte die auch berücksichtigt werden....
Private Nachricht senden Benutzer-Profile anzeigen


Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 14.07.2014, 15:55     Titel:
  Antworten mit Zitat      
Hallo,

noch besser wäre es, wenn du die Daten für A und B direkt so bereitstellst, dass man nur noch mit copy & paste arbeiten kann.
Wie erzeugst du denn die Graphiken? Zeig doch dafür bitte den Code.

Viele Grüße,
Nras.
Private Nachricht senden Benutzer-Profile anzeigen
 
Sauwa
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 14.07.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2014, 20:23     Titel:
  Antworten mit Zitat      
A=[0.8236,0.1507,0.4148,0.2676;0.1507,0.8236,0.2676,0.4148;0.6191,0.3531 ,0.9237,0.5495;0.3531,0.6191,0.5495,0.9237];

B=[1,0.0076,1.718e-04,1.752e-04;0.0076,1,1.752e-04,1.718e-04;1.718e-04,1.752e-04,1,1.735e-04;1.752e-05,1.718e-04,1.735e-04,1];



bar3(A);

Bar3(B);
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.07.2014, 21:34     Titel:
  Antworten mit Zitat      
Hallo,

du hast "Bar" im tatsächlichen Code schon klein geschrieben? Ansonsten solltest du eine Fehlermeldung bekommen.

Bei mir zeigt
Code:
ein vergleichbares Bild an wie
Code:


Mit welchem Release arbeitest du?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Sauwa
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 14.07.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2014, 06:34     Titel:
  Antworten mit Zitat      
ja ich habe bar klein geschrieben.

ich arbeite mit MATLAB 7.12.0(R2011a)
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: 15.07.2014, 07:19     Titel:
  Antworten mit Zitat      
Das funktioniert bei mir unter Win7, 64 Bit, R2014a wunderbar und es ist mir auch kein Grund bekannt warum es irgendwo anders sein sollte. Klar, sind die Daten leicht anders skaliert, aber das hat hier keinen Einfluss auf "klassische" Probleme wie die Wahl eines anderen Renderers der dann Probleme macht. Und speziell nachdem der erste Plot prima aussieht...

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 15.07.2014, 07:22     Titel:
  Antworten mit Zitat      
Bitte mal folgendermassen Debuggen:

Code:

B=[1,0.0076,1.718e-04,1.752e-04;0.0076,1,1.752e-04,1.718e-04;1.718e-04,1.752e-04,1,1.735e-04;1.752e-05,1.718e-04,1.735e-04,1];
bar3(A);
 


in ein frisches Skript - speichern.
Breakpoint in Zeile 2 setzen - Starten mit F5,
Dann mit F11/F10 schrittweise debuggen und schauen wo in bar3.m etwas ungewöhnliches passiert.

Öffnet die Figure mit leerer Achse oder ganz anders?
Passiert in der "for i=1:size(yy,2)/4" Schleife irgendwas?

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 14.07.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2014, 07:41     Titel:
  Antworten mit Zitat      
???Error using ==> get
Invalid handle object.

Error in ==> newplot>ObserveFigureNestPlot at 89
switch get(fig,'nextplot')

Error in ==> newplot at 64
fig=ObserveFigureNextPlot(fig,hsave);

Error in ==> bar3 at 43
cax=newplot(cax);

Error in ==> forimtests at 2
bar3(B);



forumtest is der name des skripts.

Es öffnet sich nur das figure-fenster mit der toolbar und allem aber der plotbereich ist weis.
Private Nachricht senden Benutzer-Profile anzeigen
 
Sauwa
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 14.07.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2014, 16:56     Titel:
  Antworten mit Zitat      
keiner mehr ne idee?

ich kann mit den fehlern nix anfangen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.07.2014, 19:28     Titel:
  Antworten mit Zitat      
Hallo,

beim Debuggen darfst du die Figure nur minimieren, nicht zumachen. Sonst kann MATLAB natürlich nicht mehr auf die Figure zugreifen, und das ist der wahrscheinliche Grund für die Fehlermeldung.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Sauwa
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 14.07.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.07.2014, 07:47     Titel:
  Antworten mit Zitat      
Es treten keine fehler in form von roten fehlermeldungen auf.

allerdings fängt das programm an in bar3.m in der if-schleife, wie Andreas Doser schon angemerkt hat, blaue zahlen gefolgt von den entsprechenden commands in das command window zu schrieben.


in dem fall ist es jetzt eine 20x20 matrix mit einsen auf der hauptdiagonalen. die anderen werte gehen gegen null.

folgendes kommt:

in bar3.m

58 h=[h,surface('xdata',xx+x(i),...
66 end
58 h=[h,surface('xdata',xx+x(i),...
66 end
58 h=[h,surface('xdata',xx+x(i),...
66 end
58 h=[h,surface('xdata',xx+x(i),...
66 end
58 h=[h,surface('xdata',xx+x(i),...
66 end
58 h=[h,surface('xdata',xx+x(i),...
66 end
58 h=[h,surface('xdata',xx+x(i),...
66 end
58 h=[h,surface('xdata',xx+x(i),...
66 end
68 if length(h)==1
72 if ~hold_state,
74 if all(all(floor(y)==y))&&(size(y,1)<16)
78 xTickAmount=sort(unique(x(1,Smile));

in unique.m

23 flagvals={'rows' 'first' 'last'};
24 if nargin>1;
43 order = 'last';
48 rows=size(a,1);
49 cols=size(a,2);
dann der rest des skripts bis 165 end.

dann wieder in bar3.m weiter

79 if length(xTickAmount)<2
81 elseif length (xTickAmount)<=16
85 hold(cax,'off'), view(cax,3), grid(cax,'on')

in hold.m

29 error(nargchk(0,2,nargin));
32 [ax,args,nargs]=axescheck(varargin{:});

in axescheck.m

11 bis end

in hold.m

34 if isempty(ax)
37 fig=get(ax,'Parent');
38 if ~strcmp(get(fig,'Type'),'figure')
42 if ~isempty(args)
43 opt_hold_state=args{1};
44 end
Private Nachricht senden Benutzer-Profile anzeigen
 
Sauwa
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 14.07.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.07.2014, 12:40     Titel:
  Antworten mit Zitat      
also da schient was an meinem computer nicht zu stimmen.

AA=rand(10:10);
surf(AA);

ist kein problem

AA=rand(100:100);
surf(AA);

aber schon.
da macht er einfach wieder nur das figure auf und das wars
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: 16.07.2014, 13:36     Titel:
  Antworten mit Zitat      
OK, ich habe herausgefunden, dass aus einem mir nicht bekannten Grund beide Codes einen anderen Renderer nutzen. Also dürfte die Lösung sein:

Code:

AA=rand(100:100);
surf(AA);
set(gcf,'Renderer','Painters')
 


Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 16.07.2014, 13:39     Titel:
  Antworten mit Zitat      
Und wenn das hilft, dann helfen auch die "üblichen" OpenGL Tricks und Kniffe die unter

Code:


beschrieben sind.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 14.07.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.07.2014, 20:31     Titel:
  Antworten mit Zitat      
also das hat geholfen. vielen dank.
aber was du mit "üblichen openGL tricks" meinst weiß ich nicht.
ich weiß nicht was dieser command da macht der auf das current figure zugreift.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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 - 2025 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.