用matlab中的solve解方程组,怎样保留其中一个符合条件的解

%例如:
f1 = (x - x1)/(a-x1) - (y-y1)/(b-y1);f2 = (x-x1)^2+(y-y1)^2 - r^2; %两个方程,其中a b r x1 y1都是已知量[x,y] = solve(f1,f2); %用solve解方程组x=double(sym(x));y=double(sym(y)); %将其变为数值解

%得出来x有两个值,y也有两个值,现要保留两个y值当中更大的,以及它所对应的x值,该怎么做?
为了方便阅读,更改如下:

%例如:f1 = (x - x1)/(a-x1) - (y-y1)/(b-y1);
f2 = (x-x1)^2+(y-y1)^2 - r^2; %两个方程,其中a b r x1 y1都是已知量
[x,y] = solve(f1,f2); %用solve解方程组
x=double(sym(x));y=double(sym(y)); %将其变为数值解%得出来x有两个值,y也有两个值,现要保留两个y值当中更大的,以及它所对应的x值,该怎么做?

第1个回答  推荐于2017-09-10
比方说得到的x是 [ 1 2]
y是[ 3 1.3]
那么可以这样处理:
[y index] = max(y);
x = x(index);
这样就对了。其中的index获得较大的y值在y向量中的索引。本回答被提问者采纳
相似回答