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分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值