在matlab上使用for循环的计数器

时间:2013-05-10 10:20:42

标签: matlab counter

我为大小为3的输入向量提供了类似问题的函数文件。您可以尝试运行它。

function neha(limit) 

c = zeros(1,3);

for i = 0:limit(3)-1 % same as running it from 1:limit(3)

    c(3)=i;

    for j = 0:limit(2)-1

        c(2)=j;

        for k=0:limit(1)-1

            c(1)=k;

            for x=3:-1:1

                fprintf('%d ',c(x))
            end

            fprintf('\n');

        end
    end
end

return

现在我的问题是:创建一个"计数器"从0:限制-1。计数器的长度未在程序中确定,应在运行时确定,输入可能彼此不同。这意味着没有给出输入向量大小,它必须适用于1,2或50的任何输入。现在我如何为这个问题创建一个函数文件?帮助请

1 个答案:

答案 0 :(得分:0)

我想我明白你的问题...试试这个递归函数

function neha(limit,pointer)

if nargin == 1 %first call
    pointer = 1;
end 

for i = 1:limit(pointer)
    limit_ = limit;
    limit_(pointer) = i;    
    if pointer == length(limit)
        fprintf('%d ',limit_-1); %print result
        fprintf('\n');
    else
        neha(limit_,pointer+1); %run recursively
    end
end 
end

调用neha(limit),你不必指定参数“pointer”。希望有所帮助。