Dúvida simples de lógica usando MATLAB

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:
É 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?
 
Back
Topo