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

Volumen unter einer "surface" berechnen

 

Sarah

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.02.2009, 18:42     Titel: Volumen unter einer "surface" berechnen
  Antworten mit Zitat      
Hallo,

ich habe nun schon eine ganze Weile gesucht, aber keine Lösung für mein Problem gefunden - es wäre also super, wenn mir hier jemand helfen könnte! Über das Thema schreibe ich meine Diplomarbeit und bin im Moment sehr ratlos... Sad

Das Problem ist folgendes:
Ich möchte die Dickenverteilung einer Scheibe berechnen. Also habe ich die beiden Richtungen x und y "festgelegt" und berechne für jeden Punkt (x,y) einen Wert z - die Höhe an dieser Stelle. Meine Ergebnismatrix "thickness" lasse ich als surface plotten, was auch ein schönes Ergebnis liefert.
Nun möchte ich aber das zusätzliche Volumen berechnen, das durch die Aufdickung entsteht - geht das irgendwie?

Vielen, vielen Dank, bin euch dankbar für jeden Tipp! Smile

(Ich hatte hier noch einen Thread gelesen, wo das Problem war das Volumen eines Sees zu berechnen, hatte aber den Eindruck, das mir das nicht weiter hilft... tut mir leid, falls ich es einfach nciht verstanden habe!)


derOli
Forum-Meister

Forum-Meister


Beiträge: 579
Anmeldedatum: 19.03.08
Wohnort: Leipzig
Version: 2010a
     Beitrag Verfasst am: 27.02.2009, 19:11     Titel:
  Antworten mit Zitat      
Hi,

du hast ja diskrete Werte, d.h. meiner Meinung nach müsstest du nur alle Z Werte addieren (sum(z)). Dann erhälst du das diskrete Volumen, um das jetzt umzurechnen must du jeweils für x, y und z jeweils reele Gesamtlänge./Gesamtanzahl Werte multiplizieren, dann erhälst du dein reeles Volumen. Probiers mal mit Zettel und Stift aus, dass sollte funktionieren.

Hier mal ein Beispiel: (Bitte korrigiert mich, wenn ich hier irgendwas total verhaue)

Quader 3*3*3m x und y jeweils eine Gesamtanzahl von 10 Werten, z hat eine Gesamtanzahl von nur 4 Werten.

d.h. reel: V= 3*3*3
diskret: V=10*10*4*3./10*3./10*3./4

Viele Grüße,

der Oli
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.02.2009, 20:18     Titel:
  Antworten mit Zitat      
Wenn du für z eine Funktion über einem rechteckigen Gebiet hast kannst du
Code:
nehmen. Für das Volumen des Offsets dann einfach das Volumen vor dem Aufdicken vom Volumen nach dem Aufdicken abziehen.
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.02.2009, 20:31     Titel:
  Antworten mit Zitat      
Code:
natürlich
 
Sarah

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.02.2009, 01:22     Titel:
  Antworten mit Zitat      
Hallo ihr beiden,

vielen Dank für die schnelle(n) Antwort(en)! Ich hab momentan leider keinen Zugang mehr zu Matlab, werde das aber dann spätestens am Montag ausprobieren... Melde mich wieder! Versprochen! Very Happy
Ganz herzlichen Dank nochmals!
 
Sarah

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.03.2009, 12:16     Titel:
  Antworten mit Zitat      
So, guten Morgen!

Ein Freund von mir hatte sich auch nochmal mit dem Problem beschäftigt und folgende Lösung angeboten:

Code:

% simples skript zur ermittlung des volumens unterhalb einer
% durch eine matrix definierten oberfläche und der z=0 ebene in den
% grenzen x1,x2,y1,y2

close all
clear all

M = [0 0 0 0 0 0; % <- x
     0 2 1 2 3 0;
     0 1 2 7 3 0;
     0 1 4 3 2 0;
     0 0 0 0 0 0];            
              %^
              %|
              %y
 
 x = [0.1 0.2 0.3 0.4 0.5 0.6];
 y = [0.1 0.2 0.3 0.4 0.5];

 figure
 
 surf(x,y,M);
 
 xlabel x
 ylabel y
 title 'Plot der Matrix'
 
% anonyme funktion zum interpolieren von zwischenwerten , die von
% dblquad verwendet werden könnte

 interp_M = @(xi,yi) interp2(x,y,M,xi,yi,'linear');
 
 % visualisierung der interpolation
 
 [X,Y]=meshgrid([x(1):.05:x(end)],[y(1):.05:y(end)]);
 
 figure
 surf(X,Y,interp_M(X,Y));
 xlabel x
 xlabel y
 title 'Plot der Interpolation'
 
% integration der matrix über zwei variablen im bereich x1:x2, y1:y2
 
 volumen = dblquad(interp_M,x(1),x(end),y(1),y(end));

 disp(['Das Volumen beträgt ' num2str(volumen) '.'])

 
 


Funktioniert soweit auch, nur dauert es sehr lange da meine Vektoren und die Matrix sehr groß sind. Vielleicht hätte dazu jemand noch einen Vorschlag?
 
Frankoooo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.01.2014, 12:34     Titel:
  Antworten mit Zitat      
Hi,
auch wenn es relativ lange her ist, seitdem hier jemand das letzte mal geschrieben hat.

Ich möchte die Grauwerte eines Bildes (640x480) auslesen und diese im 3D-Diagramm anzeigen lassen. Soweit hat es auch geklappt.
Danach möchte ich das Volumen unter einem bestimmten Bereich berechnen lassen.
Bisher habe ich folgenden Code, aber Matlab rechnet da Jahre dran rum...
Code:
M = double(imread('a.bmp'));
x=[1:640];
y=[1:480];

  figure
  surf(x,y,M);
 
   interp_M = @(xi,yi) interp2(x,y,M,xi,yi,'linear');
   
   
    volumen = dblquad(interp_M,x(1),x(end),y(1),y(end))

 


Kann mir jemand helfen?
 
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 - 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.