Verfasst am: 12.11.2022, 11:16
Titel: Verschneidung von Graphen
Hallo liebe Forum-Mitglieder!
Als Matlab-Neuling stehe ich im Zuge einer Steinschlagsimulation vor dem Problem meine Flugtrajektorien mit der Funktion des Steinschlagschutznetztes zu verschneiden. Hierbei sollen alle Flugbahnen welche das Netz treffen dort enden, alle anderen weiterlaufen bis diese die Böschung erreichen.
Die Flugbahnen sind hierbei in einer großen Matrix 1000x151 definiert.
Die Netzgerade ist in einer identisch großen Matrix definiert mit der Netzhöhe als Maximalwert begrenzt.
Die unten angeführte Verschneidung mit dem Netz funktioniert leider nur teilweise, und schneidet nur das abgebildete Dreieck heraus.
Gibt es eine andere Lösungsmöglichkeit zur Realisierung der Verschneidung?
du kannst find(..., 1) verwenden, um für jede Trajektorie das Ende zu ermitteln. Dann musst du alle folgenden Elemente auf NaN setzen.
Für weitere Unterstützung poste bitte die Daten und den kompletten Code, inkl. der Erzeugung des Plots. Dann kann man die Zusammenhänge besser nachvollziehen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
vielen Dank für die schnelle Rückmeldung!
Mit find bekomme ich es leider auch nicht hin. Mein Problem ist, dass ich es nicht schaffe meine yPar Matrix so zu definieren, dass sobald ein NaN in der Zeile vorkommt alle weiteren Elemente dieser Zeile ebenfalls NaN sein sollen.
Folgend mein gesamter Code:
Code:
clc clearall tic
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%% Steinschlagsimulation ab ersten Abprall auf Böschung %%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Zufallswinkel mit 37 Mittelwert
alpha=37% Böschungswinkel
%Blockgeometrie und Masse
d1=1.2 %[m]
masse = 4/3*pi*(d1/2)^3*2700 %[kg]
%Höhenermittlung für erforderliche Netzhöhe 90° auf Böschung
max(yPar)
yHang=-xNetz*tan(deg2rad(alpha)); % y Pos Netzursprung
h_vert=yPar-yHang; % h Differenz vertikal
h_nor=h_vert*cos(deg2rad(alpha)); % h Differenz normal auf Böschung
hsort=sort(h_nor); % h sortiert
hsort(hsort<0)=[]; % h kleiner 0 entfernen
h1=prctile(hsort,Fraktil); % Fraktil von h
h95=h1(1)
%Energie kin bei Impact in Netz
v_x=((sin(deg2rad(d2))*v0_1-g*(xNetz./(v0_1*cos(deg2rad(d2))))).^2+(v0_1*cos(deg2rad(d2))).^2).^0.5;
v_x=v_x(1);
E_kin=v_x.^2/2*masse*0.001 %[kJ]
%%%%%%%%%%% Plot %%%%%%%%%%%%%%%%%%%%% % Plot der verschiedenen Abprallwinkel
xn=0.25; % x Schrittweite
x_Weite=150; % max. betrachteter X Wert
%Schutznetz im Winkel 90° auf Böschung
Netz_x=xNetz:0.1:xNetz+sin(deg2rad(alpha))*h_Rk_erf; % x Werte Netz
Netz_y=-xNetz*tan(deg2rad(alpha))+tan(deg2rad(90-alpha))*(Netz_x-xNetz); % y Werte Netz
Netz_d=yHang-tan(deg2rad(90-alpha))*xNetz; % y Wert bei x= 0 für kx+d Gleichung
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Vielen herzlichen Dank, genau so hab ich es gesucht!
Beste Grüße
Max
Einstellungen und Berechtigungen
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
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.