matlab max报错,matlab报错,符号变量不能用max(),但是怎么改呢?

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

fpv461392

2015.03.27

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:40%    等级:7

已帮助:111人

你的程序问题很多,主要出在没有正确理解和使用符号工具箱上,下面程序已调通,请参考:

clear;

clc;

R=10;

h=40;

L=40;

aa=2;

a=aa*pi/180;

light=zeros(1,100000);

n=0;

for x = 0:0.001:(L/2)

syms y x0 x1;

n=n+1;

if x<=(R*cos(a))

y=solve(x^2+y^2 == R^2);

y1=max(double(y));

c=atan((y1)/x);

x0=double(solve(((x0)-x)/(h+(y1)) == tan(2*c-a)));

x1=double(solve(((x1)-x)/(h+(y1)) == tan(2*c+a)));

if x0>20

light(n)=0;

else

if x1>(R/2)

x1=20;

for xin=x0:0.001:x1

b = atan((abs(xin-x))/(h+y1));

light(n) = light(n)+cos(b);

end

else

for xin=x0:0.001:x1

b = atan((abs(xin-x))/(h+y1));

light(n) = light(n)+cos(b);

end

end

end

% elseif x>=(R/cos(a))

% xmin=x-h*tan(a);

% xmax=x+h*tan(a);

% for xin=xmin:0.001:xmax

% b = atan((abs(xin-x))/h);

% light(n) = light(n)+cos(b);

% end

end

clear y x0 x1;

end

00分享举报

你可能感兴趣的:(matlab,max报错)