一道matlab程序问题

问题描述:

一道matlab程序问题
function [k,N]=threeN(n)
if nargin==0,n=5;end
k=1;N=n;
while =1
r=rem(n,2);
if r==0
n=n/2;
else
n=3*n+1;
end
N=[N,n];k=k+1;
end
请问这个程序的每个语句结尾都有分号,但是为什么还会有结果显示出来?
为什么函数文件的返回值只有K却没有N呢?
1个回答 分类:综合 2014-10-28

问题解答:

我来补答
1、会显示结果是因为你调用这个函数会返回结果.猜测你很可能是直接在编辑器里面运行的,那样相当于调用:threeN如果不想显示结果,可以有两种做法:(1)在命令窗口调用函数,并在后面加分号:threeN;(2)修改函数,使得没有显式输出参数时,不返回结果:function [K,N]=threeN(n)
if ~nargin, n=5; end
k=1; N=n;
while n~=1
    r=rem(n,2);
    if r==0
        n=n/2;
    else
        n=3*n+1;
    end
    N=[N,n];k=k+1;
end
if nargout, K=k; end  2、要想返回第二个参数N,必须使用命令行的调用方式:[K,N]=threeN
 
 
展开全文阅读
剩余:2000