Matlab 两方程相交

Matlab 两方程相交,matlab,debugging,intersection,Matlab,Debugging,Intersection,我有两个方程,第一个是直线,第二个是圆,我想画交点 y=tan(φ)*x (x-v)^2+y^2=R^2 其中‘phi’是角度[phi=linspace(pi/30,pi/3100)] 我尝试了这段代码,但在我想要绘图之后,我收到了这条消息 “使用绘图时出错 “行”中不支持非数字数据 谢谢你的帮助 我开发了一个与你完全不同的代码。但它实现了我从你的问题中理解的。你有一个圆和一条线,你想得到两者的交点。我在下面提供了代码 close all;clear;clc; theta = linspace

我有两个方程,第一个是直线,第二个是圆,我想画交点

y=tan(φ)*x (x-v)^2+y^2=R^2

其中‘phi’是角度[phi=linspace(pi/30,pi/3100)] 我尝试了这段代码,但在我想要绘图之后,我收到了这条消息 “使用绘图时出错 “行”中不支持非数字数据


谢谢你的帮助

我开发了一个与你完全不同的代码。但它实现了我从你的问题中理解的。你有一个圆和一条线,你想得到两者的交点。我在下面提供了代码

close all;clear;clc;

theta = linspace(0, 2*pi, 360);
m = 1; % Slope of the line. since tan(45) = 1 for y = x;
b = 0; % Y-interception

% To easiest way to plot a circle, you can plot a cosine vs sine
gt1 = cos(theta);
gt2 = sin(theta);

figure(1)
plot(gt1, gt2, 'r', 'linewidth', 1.5)
axis('equal')
grid minor

figure(2)
refline(m, b); % Defining a reference line
hold on
plot(gt1, gt2, 'r', 'linewidth', 1.5)
hold off
grid minor 
axis([0 1.1 0 1.1]) % To get the top right quarter of the circle
结果将是:


在绘图之前,您可能需要将
x2
y2
转换为
double
(它们是符号):
绘图(double(x2),double(y2))
我尝试了一下,现在得到的错误指数超过了矩阵维数。sym/subsref(第805行)R_tilde=builtin('subsref',L_tilde,Idx)中的错误;是哪条线导致了问题。另外,请更新您的代码,以便我们可以运行它。您缺少许多变量声明请回答您的问题…不要在注释中发布代码。是的,对不起,我没有太多地使用这个页面,我编辑了我的问题,希望你能理解
close all;clear;clc;

theta = linspace(0, 2*pi, 360);
m = 1; % Slope of the line. since tan(45) = 1 for y = x;
b = 0; % Y-interception

% To easiest way to plot a circle, you can plot a cosine vs sine
gt1 = cos(theta);
gt2 = sin(theta);

figure(1)
plot(gt1, gt2, 'r', 'linewidth', 1.5)
axis('equal')
grid minor

figure(2)
refline(m, b); % Defining a reference line
hold on
plot(gt1, gt2, 'r', 'linewidth', 1.5)
hold off
grid minor 
axis([0 1.1 0 1.1]) % To get the top right quarter of the circle