作业帮 > 综合 > 作业

求大神看看这段matlab程序哪错了,菜鸟一只,刚用这软件

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/05/06 10:22:14
求大神看看这段matlab程序哪错了,菜鸟一只,刚用这软件
>> syms i j t m n q s o p ;
s=0;q=0;o=0;
count=zeros;
a=[0.5 1.41 0 0.37 0.4 0.72 0.72 0.43 0.57 0.38 0.98 0.50];
b=[0 0.5 0.5 0.51 0.5 0.24 0.24 0.1 0.01 0.5 0.41 0.8];
for i=-0.5:0.001:0.5
o=o+1;
for j=-0.5:0.001:0.5
p=p+1;
for t=1:1:12
m=min(abs(a(t)-j),abs(1+j-a(t)));
n=min(abs(b(t)-i),abs(1+i-b(t)));
q=max(m,n);
if qs
s=count(o,p);
end
end
p=0;
end
Error using ==> sym.sym>notimplemented at 2621
Function 'subsindex' is not implemented for MuPAD symbolic objects.
Error in ==> sym.sym>sym.subsindex at 1359
notimplemented('subsindex');
求大神看看这段matlab程序哪错了,菜鸟一只,刚用这软件
p的初值是0吗?如果是的话改成以下代码就可以运行了
syms i j t m n q s o p ;
s=0;q=0;o=0;p=0;
count=zeros(1000);
a=[0.5 1.41 0 0.37 0.4 0.72 0.72 0.43 0.57 0.38 0.98 0.50];
b=[0 0.5 0.5 0.51 0.5 0.24 0.24 0.1 0.01 0.5 0.41 0.8];
for i=-0.5:0.001:0.5
o=o+1;
for j=-0.5:0.001:0.5
p=p+1;
for t=1:1:12
m=min(abs(a(t)-j),abs(1+j-a(t)));
n=min(abs(b(t)-i),abs(1+i-b(t)));
q=max(m,n);
if qs
s=count(o,p);
end
end
end
再问: 我输出全是0,停不了了,zeros(1000)是什么啊,怎么回事,希望兄弟帮下忙啊
再答: zeros(1000)表示输出一个1000*1000的零矩阵,根据你后面的运算,count矩阵的维数应该是1000*1000,所以给出了一个1000*1000的矩阵
再问: 不应该全是零吧,怎么改啊
再答: 你要实现什么功能,正好我现在有时间,可以帮你看一下
再问: a代表数的横坐标,b代表纵坐标,就是将一个正方形(1,1)平移,范围在x轴,y轴的【-0.05,0.05】,使这些数离正方形的四个顶点距离小于0.05的最多,距离的定义是纵坐标之差与横坐标之差的最大值,我说的不太清楚,不好意思,还有就是他为什么自动输出矩阵呢,我又没让
再答: 最后要输出什么结果,是距离小0.05的点的个数,还是什么?
再答: count=0;
a=[0.5 1.41 0 0.37 0.4 0.72 0.72 0.43 0.57 0.38 0.98 0.50];
b=[0 0.5 0.5 0.51 0.5 0.24 0.24 0.1 0.01 0.5 0.41 0.8];
for i=-0.5:0.001:0.5
for j=-0.5:0.05:0.5
for t=1:12
m1=max(abs(a(t)-(i-0.5)),abs(b(t)-(j-0.5)));
m2=max(abs(a(t)-(i+0.5)),abs(b(t)-(j-0.5)));
m3=max(abs(a(t)-(i+0.5)),abs(b(t)-(j+0.5)));
m4=max(abs(a(t)-(i-0.5)),abs(b(t)-(j+0.5)));
m=min(m1,m2);
m=min(m,m3);
m=min(m,m4);
if m