MATLAB的一个循环错误出在哪里

来源:百度知道 编辑:UC知道 时间:2024/06/14 16:45:23
>> for x=10:10:100
for y=10:10:100
z(x,y)=intension(x,y);
end
end
>> size(z)

ans =

100 100

这个应该是10*10的循环啊,为什么结果是100*100呢,请高人解答!
function I=intension(x,y)
global x0 y0 I0 r0
I=I0*exp(-((x-x0)^2+(y-y0)^2)/r0^2);

>> global x0 y0 I0 r0
>> x0=50;y0=50;r0=30;I0=1;
剩下的就是上面的程序了,谢谢大家!如果变成X=1:10; Y=1:10;,那么结果就是Z 10*10了

关键问题在于这一句:z(x,y)=intension(x,y);
在 x=10:10:100, y=10:10:100,的条件下,当x=100, y=100的时候,
就会出现z(100,100),这样的话,matlab会自动将z补成一个100×100的矩阵,没有值的地方设为0.
你的程序可以改成:z(x/10,y/10)=intension(x,y);
其他都不需要改,就正确了

楼上说法有问题吧

你的表达式z(x,y)
x,y是z的下标,你看你的循环变量
到最后xy都等于100了
z下标有100,size(z)不就是100*100
?????

循环肯定是10*10,

100*100是因为你的函数调用的缘故!