solve the intersection of the line and surface

조회 수: 1 (최근 30일)
xingjian yang
xingjian yang 2018년 5월 19일
댓글: xingjian yang 2018년 5월 20일
I try to solve the intersection of a line and a surface by solving a system of nonlinear equations, while it seems to run into some problem of the global variables and function handle...
global x y z t
line_p=[3,2,1]; % point on the line
line_d=[1,2,3]; % line direction vector
surface=@(x,y,z)x+y^2+z^3-10;
p=intersection(line_p,line_d,surface);
function [p]=intersection(line_p,line_d,surface)
eq1=x-(line_p(1)+line_d(1)*t);
eq2=y-(line_p(2)+line_d(2)*t);
eq3=z-(line_p(3)+line_d(3)*t);
eq4=@(x,y,z)surface;
sol = solve(eq1,eq2,eq3,eq4,x,y,z,t);
p=sol(3,1);
end

채택된 답변

Rik
Rik 2018년 5월 19일
You need to declare globals in each function you use them to enable the functionality.
You should in general avoid global variables, because they are very difficult to debug. If you really have to use them, use very long, very descriptive names that you will never use again. If that name is too cumbersome to use, just copy the variable, see the example below.
function myfunction
global myfunction_global_variable__frequency_of_red_cars_from_Montana
cars=myfunction_global_variable__frequency_of_red_cars_from_Montana;
plot(cars)
end

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by