-3

我已经为大小为 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:limit-1 创建一个“计数器”。计数器的长度在程序中没有确定,它应该在运行时确定,并且输入可以彼此不同。这意味着没有给出输入向量大小,它必须适用于任何输入,无论是 1,2 还是 50。现在我如何为这个问题制作一个函数文件?请帮忙

4

1 回答 1

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),您不必指定参数“指针”。希望有帮助。

于 2013-05-10T11:18:48.297 回答