1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Dúvida simples de lógica usando MATLAB

Discussão em 'Programação' iniciada por gustcoelho, 8 de Outubro de 2008. (Respostas: 2; Visualizações: 761)

  1. ola pessoal

    estou com um probleminha, que na verdade é mais de lógica do que de software eu acho

    bom, preciso uma funcao que reconheca qual o maior valor e menor valor de um vetor (tamanho qqer que o usuario coloque na entrada) e a posicao destes caras no vetor.

    ok, só que nao estou conseguindo o resultado que quero.. imaginei assim:

    Código:
     
    function[]=trabalho(A)
     
    if nargin ~= 1
    error('número indevido de parâmetros')
    return
    end
     
    c=length(A);
    true=0;
     
    for k=1:length(A)
    if c <= length(A)
    for d=length(A):0
    if A(k) > A(k+length(A)-d+1)
    true=1;
    else
    true=0;
    end
    end
    if true==1
    disp('maior valor')
    disp(A(k))
    disp('posicao de maior valor')
    disp(k)
    end
    end
     
    end
    end
    
    na verdade ele ta comparando os valores errado, pois so compara com os valores a direita (qnd o k cresce) ... qnd ele compara o ultimo valor do vetor por exemplo, ele nao vai comparar com os da esquerda... e nao ta dando a resposta! onde eu devo por o disp nessa historia td?

    help plz...

    falou valeu
     
    Última edição pelo moderador: 8 de Outubro de 2008
  2. tiagopestana

    tiagopestana Power Member

    É demasiado cedo e eu tenho demasiado sono para estar a rever o teu código, desculpa lá.

    Mas vê se uma coisa deste género nao faz o que tu queres:

    Código:
    min=inf;
    min_index=-1;
    max=-inf;
    max_index=-1;
     
    for i=1:length;
        if A(i)<min
             min=A(i);
             min_index=i;
        end
        if A(i)>max
             max=A(i);
             max_index=i;
        end
    end
     
    
    Acho que deve ser mais ou menos isso que queres, isto sem fazer mesmo a declaraçao da funçao e sem mostrar os resultados. Ah, e caso o máximo (ou o mínimo) apareçam mais do que uma vez isto só te vai dizer a posiçao de um deles.

    Já agora, presumo que conheças as funçoes max e min do MATLAB?
     
  3. cara... mto esclarecedor teu post. ajudou muito, consegui resolver... mto obrigado!!!!
     

Partilhar esta Página