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

Problem mit surf / mesh

 

koffer-murphy
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 15.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2008, 20:51     Titel: Problem mit surf / mesh
  Antworten mit Zitat      
Hallo,

ich würde gerne ein Profil mit Matlab darstellen.
Mit dem Befehl mesh(X) erhalte ich das Ergebnis wie auf dem Bild in der Anlage beigefügt. Nun möchte ich auf die Oberfläche ein Gitter legen, damit das bisschen hübscher aussieht.
Eigentlich sollte das ja mit dem Befehl surf gehen. Dabei wird jedoch die gesamte Oberfläche schwarz dargestellt...
Was mache ich falsch? Ich habe auch schon probiert, den Befehl mesh(X,Y,Z) zu verwenden., wobei ich X und Y aus meshgrid bestimme. Leider erhalte ich hier eine Fehlermeldung:
[X,Y]=meshgrid(smoothv_sgolay);
??? Maximum variable size allowed by the program is exceeded.

Error in ==> meshgrid at 44
xx = xx(ones(ny, 1),Smile;

Hat jemand eine Idee, wie ich nun ein Gitter auf die Oberfläche legen kann?

Vielen Dank für eure Hilfe!

ob_3d.jpg
 Beschreibung:

Download
 Dateiname:  ob_3d.jpg
 Dateigröße:  113.41 KB
 Heruntergeladen:  1277 mal
Private Nachricht senden Benutzer-Profile anzeigen


Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 22.04.2008, 09:30     Titel:
  Antworten mit Zitat      
Hallo koffer-murphy,

das alles spricht dafür, dass Du zu viele Werte in der darzustellenden Matrix hast. Wenn alles schwarz ist, bedeutet das, dass man vor lauter Gitterlinien die Werte nicht mehr sieht.

Versuch mal

Code:


mit verschiedenen ganzzahligen Werten für step.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
koffer-murphy
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 15.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2008, 12:28     Titel:
  Antworten mit Zitat      
Hallo,

leider klappt es mit deinem Befehl nicht:

>> surf(werte(1:100:end,1:100:end));
??? Error using ==> surf at 75
Z must be a matrix, not a scalar or vector.

Ich glaube, der Befehl step ist hier nicht richtig...
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 22.04.2008, 12:43     Titel:
  Antworten mit Zitat      
Das Problem ist das du step zu groß gewählt hast.
Step bedeutet nimm nur jedes 100 Wert (wie in deinem Fall).
Aber deine Matrix ist wohl kleiner als 100x100.


Beispiel:
Code:

X=rand(9,9);step=10; surf(X(1:step:end,1:step:end));
 

erzeugt Fehler, da meine Matrix ist nur 9x9
und ich möchte gleich den 10. Wert haben, das läuft schief da kein 10.Wert in Matrix existiert
wählt man z.B:
Code:

X=rand(11,11);step=10; surf(X(1:step:end,1:step:end));
 

dann funktioniert die Code, da 10. Wert existiert in diesem Fall.

Also muss dein step immer kleiner gleich der Matrix Größe wählen
Private Nachricht senden Benutzer-Profile anzeigen
 
steffi
Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 07.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2008, 12:43     Titel:
  Antworten mit Zitat      
ich glaube, bijick meinte step hier nicht als Befehl, sondern als Variable!

Wie groß ist deine Matrix? Versuch doch mal:

Code:
surf(X(1:2:end,1:2:end));

 


Wenn das immer noch undeutlich ist:

Code:
surf(X(1:4:end,1:4:end));

 

_________________

Wenn ich bei der Arbeit mit Computern eins gelernt habe dann das ich einem Computer nur soweit traue wie ich ihn werfen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
koffer-murphy
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 15.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2008, 12:46     Titel:
  Antworten mit Zitat      
ja, ich weiß, die matrix ist 5x80001 groß...

und ich habe für step 100 und für end 80001 gewählt.. trotzdem kommt die fehlermeldung... Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
steffi
Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 07.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2008, 13:02     Titel:
  Antworten mit Zitat      
5x80001, dann kannst du nicht mit


Code:
surf(werte(1:100:end,1:100:end));


loslegen: 100 ist doch größer als 5!

Code:
surf(werte(5,1:100:end));

versuchen!
_________________

Wenn ich bei der Arbeit mit Computern eins gelernt habe dann das ich einem Computer nur soweit traue wie ich ihn werfen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 22.04.2008, 13:15     Titel:
  Antworten mit Zitat      
Ja du hast aber nur 5 Zeilen und du springst in Zeilenrichtung gleich 100 Zeilen, das wird einfach schief gehen

So sieht Syntax für Zugriff auf Matrix-Elemente
X(zeilen,spalten).
Vor der Komma wählt man Anzahl Zeilen
Nach der Komma --- Anzahl Spalten
z.B. X(5,100) gibt Elemnt aus 5.Zeile und 100.Spalte

genau so ist es mit Laufindex
X(von:bis ,von:bis).
z.B. X(1:5,1:6) würde 5 Zeilen und 6Spalten Matrix ausgeben

Mit Step gibt man bloß die Schrittweite

X(von:step_row:bis ,von:step_col:bis).

so z.B. würde es in deinem Fall funktionieren
Code:
 
X=rand(5,80001);
surf(X(1:1:end, 1:100:end));
 


Aber ob es die Lösung ist für das Gitter ist, da bin ich mir nicht sicher
Private Nachricht senden Benutzer-Profile anzeigen
 
koffer-murphy
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 15.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2008, 14:55     Titel:
  Antworten mit Zitat      
Hallo,

vielen Dank für die Hinweise... Hatte irgendwie einen Brett vorm Kopf... Klar konnte das nicht funktionieren...

Jetzt haut's hin!
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.