• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ARNeiva

Ajuda MatLab

20 mensagens neste tópico

Boas.

Alguem aqui percebe de Matlab??? é que eu precisava de umas dicas porque tenho de fazer um trabalho nessa linguagem...

Se alguem me poder ajudar agradecia....

cumps. ARNeiva

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Coloca as dúvidas e se alguém souber ajudar-te-á. Há alguns utilizadores com experiência nessa linguagem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu precisava de fazer uma função que calcula-se a entropia de uma fonte discreta, através do pedido ao utilizador de quais os símbolos da fonte e correspondentes probabilidades de ocorrência.

Parâmetros de entrada: a) vector com as probabilidades da fonte, :P vector com os símbolos da fonte.

Parâmetros de saída: a) vector com as Auto-Informações de todos os símbolos, :P valor da Entropia da Fonte.

Eu gostava de saber se é possivel me dizerem se dá para declarar um vector com um dimensão indeterminada. E como se faz para passar os parâmetros de entrada e de saida.

cumps. ARNeiva

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens neste tópico alguns links com informação sobre Matlab.

Para a tua dúvida concreta, qual é o objectivo de declarares um tamanho pré-definido para um array? Os vectores/matrizes em Matlab são sempre dinâmicos, e crescem à medida que são adicionados elementos.

Podes fazê-lo afectando o último índice com um valor, ou inicializando a zeros ou uns:

v(100)=0; % cria um vector com 100 posições
v=zeros(100); % cria um vector com 100 posições e coloca o valor 0 em todas
v=zeros(10,10); % cria uma matriz com 10 linhas e 10 colunas e coloca o valor 0 em todas
v=ones(100); % cria um vector com 100 posições e coloca o valor 1 em todas
v=ones(10,10); % cria uma matriz com 10 linhas e 10 colunas e coloca o valor 1 em todas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

quanto a questão dos vectores estou esclarecido, e o problema resolvido. Mas quanto as funções? Como é que eu chamo uma função no programa principal.

e como declaro uma função com parametros de entrada/saida???

desde já obrigado pela ajuda.

cumps. ARNeiva

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso são coisas simples

escreve help na linha de comandos e lê essa introdução.

Se tiveres dúvidas sobre tópicos em particular podes escrever por exemplo:

help function

e aparece-te a documentação sobre funções.

em alternativa podes sempre consultar o site da matworks, tem muitos recusrsos, e exemplos bastante simples de perceber.

Por exemplo, aqui tens a documentação sobre funções:

http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/ref/function.html

Isto é o mesmo que aparece quando inseres help function no interpretador.

Navegando pelo menu à esquerda tens óptima documentação sobre o matlab.

Ehehhhe... dêm documentação a este homem! ;)

O matlab é particularmente indicado para o teu exercício porque podes fazer uso das operações matriciais ponto a ponto.

Só por curiosidade, em que universidade andas?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

brigado pedrotuga.

vou ver isso.

ja agora ando no Estig, IPB, Bragança.

brigado a todos pela ajuda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

desculpem estar a chatear mas tenho mais um duvida.

Pode-se introduzir símbolos num vector em matlab???

cumps. ARNeiva

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso é uma dúvida que aparece frequentemente entre os principiantes de matlab, penso que é pelo facto de não ser olhado como uma linguagem de programação, ou por ser usado por pessoas que não estão habituadas a programar.

Podes usar variéveis como noutra linguagens de programação. Mas não podes por exemplo traçar um gráfico a partir de uma expressão matemática por si só.

o que é que estás a tentar fazer?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tipo, ao utilizador introduzir um símbolo, este pode ser uma letra??? como é que eu guardo um símbolo num vector??? eu estou a tentar fazer o que referi num dos post anteriores.

cumps. ARNeiva

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, estás confundido.

Não podes guardar simbolos arbitrarios se estes não tiverem lá nada.

O matlab só funciona com pontos.

Podes por uma letra dentro de um vector à vontade, mas esta tem que corresponder a uma variável.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas mais uma vez.

eu queria saber como posso fazer uma função para medir o cumprimento de um vector, é ke em C, é até encontrar o caracter /0, mas em MatLab???

Alguem me pode ajudar???

desde já obrigado.

cumps. ARNeiva

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se quiseres saber o tamanho físico, de um vector/matriz podes usar a função size()

Isso que tás a dizer é um pouco diferente e não é muito útil no matlab porque o matlab permite-te adicionar alementos a um array já cheio.

Mas pode perfeitamente fazer-se como fazes em C, por exemplo com um ciclo for.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ou muito me engano ou vai aqui uma grande confusão. O que é que pretendes fazer exactamente?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas.

Sou eu de novo. Eu gostava de saber como se le dados de um ficheiro em matlab???

exeplo: tenho um ficheiro(bin,txt, o outro), e kero ir buscar valores ke estão la dentro...

como faço isso???

desde ja obrigado

cumps. ARNeiva

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá !!!

É minha primeira participação neste forum e gostaria que alguém pudesse me dar dicas sobre o seguinte problema.

Fiz um programa e agora quero  ler os dados de um arquivo (.dat) usando o fscanf ou gets ou get1.

A pergunta é a seguinte: como fazer para ler uma série de dados, na realidade 2 matrizes 3x3 e uma série de valores numéricos inteiros e reais e ao final uma nome (cadeia de caracteres) que servirá para armazenas os resultados gerados.

Obrigado!!!

adantas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pena que a anterior mensagem tenha passado despercebida.

Bem, adantas, vamos lá então a isso.

O mais parecido com o matlab que tenho aqui no meu computador é o octave que não vem com a função dlmread() que basicamente é o que precisas neste caso.

Está aqui a explicação:

http://www.mathworks.com/support/tech-notes/1400/1403.html

Para mais informação digita:

help dlmread

Basicamente só tens que definir o delimitador e isso mete-te tudo para um array. Depois é manipulares o array para ficar no formato que quiseres.

Se precisares mesmo de guardar objectos arbitrários para um ficheiro, encontrei por aí uns scripts que fazem serialize de objectos, por exemplo este:

http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=12063&objectType=File

Parecem-me antigos e não sei se vão funcionar, se for uma coisa que precisas mesmo podes sempre ler o código e ver como funciona.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pedro!!!

  Obrigado. Tentarei. Mais tarde informarei se consegui.

[ ] s

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pedro !!

Achei que estava procurando

Abaixo segue o código

fp= fopen('dados.txt', 'r');

reg=fgets(fp)

while reg ~=-1 % Para  ler até o ultimo registro

    [nome, v1 v2 v3 v4 v5 v6 v7] = strread(reg, '%s %f %f %f %f %f %f %f') % tranforma caracteres em valores numéricos

    % AQUI SE DESENVOLVE TODO O PROGRAMA

    reg=fgets(fp)

end

fclose(fp)

Abraços

Dantas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora