为什么我的MATLAB程序可以输出所有计算值? 求只输出最后结果的方法。
希望有高手可以帮忙解决。问题是这样的:如果我编辑了一个m文件,该文件中含有循环程序。编辑完成,执行该文件时,MATLAB程序就会将里面的未知量取过的所有值都显示出来。这到...
希望有高手可以帮忙解决。
问题是这样的:
如果我编辑了一个m文件,该文件中含有循环程序。
编辑完成,执行该文件时,MATLAB程序就会将里面的未知量取过的所有值都显示出来。这到底是为什么呢?
例如:对于计数变量i,执行程序是就会将i的所有取值输出。还是简单送上我的一个小程序吧,希望有高手可以帮忙解决。
这是用微积分概念求解x^2积分值的程序:
function proj3
a=input('input the min')
b=input('input the max')
n=input('input the number:')
h=(b-a)/n
i=1
x=a+h
y=x^2*h
for i=1:n-1
x=x+h
y=x^2*h+y
i=i+1
end
如果只是简单的取值为a=0,b=1,n=2的话,输出结果为
input the min0
a =
0
input the max1
b =
1
input the number:2
n =
2
h =
0.5000
i =
1
x =
0.5000
y =
0.1250
x =
1
y =
0.6250
i =
2 展开
问题是这样的:
如果我编辑了一个m文件,该文件中含有循环程序。
编辑完成,执行该文件时,MATLAB程序就会将里面的未知量取过的所有值都显示出来。这到底是为什么呢?
例如:对于计数变量i,执行程序是就会将i的所有取值输出。还是简单送上我的一个小程序吧,希望有高手可以帮忙解决。
这是用微积分概念求解x^2积分值的程序:
function proj3
a=input('input the min')
b=input('input the max')
n=input('input the number:')
h=(b-a)/n
i=1
x=a+h
y=x^2*h
for i=1:n-1
x=x+h
y=x^2*h+y
i=i+1
end
如果只是简单的取值为a=0,b=1,n=2的话,输出结果为
input the min0
a =
0
input the max1
b =
1
input the number:2
n =
2
h =
0.5000
i =
1
x =
0.5000
y =
0.1250
x =
1
y =
0.6250
i =
2 展开
6个回答
展开全部
function proj3
a=input('input the min')
b=input('input the max')
n=input('input the number:')
h=(b-a)/n
i=1;
x=a+h;
y=x^2*h;
for i=1:n-1
x=x+h;
y=x^2*h+y;
i=i+1;
end
i %没有分号
x %没有分号
y %没有分号
%循环程序中的赋值语句和之前的赋值语句最后要有分号,有了分号就不会输出值了,如果想最后输出哪个值,就在最后把变量名写上就可以了,记住这回不要分号了!
a=input('input the min')
b=input('input the max')
n=input('input the number:')
h=(b-a)/n
i=1;
x=a+h;
y=x^2*h;
for i=1:n-1
x=x+h;
y=x^2*h+y;
i=i+1;
end
i %没有分号
x %没有分号
y %没有分号
%循环程序中的赋值语句和之前的赋值语句最后要有分号,有了分号就不会输出值了,如果想最后输出哪个值,就在最后把变量名写上就可以了,记住这回不要分号了!
展开全部
这个不是规范函数形式吧,函数和脚本的区分在这个程序里没有体现,即便是你写的是函数还少了一个end来表示这个函数结束;这是一个求积分的函数,改成这样好一点:
function y=proj3(a,b,n)
%a=input('input the min')
%b=input('input the max')
%n=input('input the number:')
h=(b-a)/n;
i=1;
x=a+h;
y=x^2*h;
for i=1:n-1
x=x+h;
y=x^2*h+y;
end
end
运行结果如下(求0——1上的积分)
y=proj3(0,1,100)
y =
0.3384
function y=proj3(a,b,n)
%a=input('input the min')
%b=input('input the max')
%n=input('input the number:')
h=(b-a)/n;
i=1;
x=a+h;
y=x^2*h;
for i=1:n-1
x=x+h;
y=x^2*h+y;
end
end
运行结果如下(求0——1上的积分)
y=proj3(0,1,100)
y =
0.3384
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那是因为你这些变量或者常量后面没加封号“;”。
你加了就不显示了
比如说要这样:
h=(b-a)/n;
i=1;
x=a+h;
y=x^2*h;
你加了就不显示了
比如说要这样:
h=(b-a)/n;
i=1;
x=a+h;
y=x^2*h;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在不需要值输出的语句后面加一个分号就行了,在编程时要习惯于加分号。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加“;”号,就可以了。他表示在工作空间显示,而不在运行窗口显示。
a=input('input the min:');
b=input('input the max:');
n=input('input the number:');
h=(b-a)/n;
i=1;
x=a+h;
y=x^2*h;
for i=1:n-1
x=x+h;
y=x^2*h+y;
i=i+1;
end
y
这样就可以了。
a=input('input the min:');
b=input('input the max:');
n=input('input the number:');
h=(b-a)/n;
i=1;
x=a+h;
y=x^2*h;
for i=1:n-1
x=x+h;
y=x^2*h+y;
i=i+1;
end
y
这样就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询