matlab中的矢量化求解

matlab中的矢量化求解,matlab,vectorization,symbolic-math,Matlab,Vectorization,Symbolic Math,我有以下代码: syms y x=linspace(0,1000,100); b=solve((1/(x-y))-(1/y)=2,y) 而且它不起作用。我想将解决方案矢量化,但不知何故,我遗漏了一些东西。我不想使用for单独求解每个值 非常感谢您的帮助。想想如何用笔和纸来解决这个问题。你不会替换x 100次,然后再解100次。而是为y求解一次,然后输入x值: syms x y %use solve once b=solve((1/(x-y))-(1/y)==2,y) %generate ano

我有以下代码:

syms y
x=linspace(0,1000,100);
b=solve((1/(x-y))-(1/y)=2,y)
而且它不起作用。我想将解决方案矢量化,但不知何故,我遗漏了一些东西。我不想使用for单独求解每个值


非常感谢您的帮助。

想想如何用笔和纸来解决这个问题。你不会替换x 100次,然后再解100次。而是为y求解一次,然后输入x值:

syms x y
%use solve once
b=solve((1/(x-y))-(1/y)==2,y)
%generate anonymous function from the solution
c=matlabFunction(b)
%evaluate anonymous function 100 times
result=c(linspace(0,1000,100))
%to get only the highest solution
max(result)

它返回一个2x100矩阵,因为
solve
找到了两个解决方案。

非常感谢。当将c定义为仅最大值时,它返回“输入参数必须可转换为浮点数”。感谢您滥用您的帮助。出现错误时您使用了什么代码?您不能使用
max
进行符号输入,您只对正解感兴趣吗?我想现在我理解了您的问题。在最后应用
max
仅获得最大的解决方案:
max(c(linspace(01000100))
是的,得到了。谢谢,最后一个问题!如果我想运行ezplot('(1/(x-y))-(1/y)=2*p'),我如何使matlab将p识别为外部参数?