Forum Pplware
[Ajuda] Trabalho em Octave/Matlab - Versão de Impressão

+- Forum Pplware (http://forum.pplware.com)
+-- Fórum: Mais Tech (/forumdisplay.php?fid=11)
+--- Fórum: Programação e Web (/forumdisplay.php?fid=16)
+--- Tópico: [Ajuda] Trabalho em Octave/Matlab (/showthread.php?tid=15256)



[Ajuda] Trabalho em Octave/Matlab - Karolas - 17-04-2013 22:54

Boas,

Estou a fazer um trabalho, para uma cadeira de programação e estou a ter algumas dúvidas.

Está aqui o enunciado:
http://pdfcast.org/pdf/trabalho-matlab-octave


Já fiz duas funções: uma para ler o url e outra para juntar todas as 36 amostras numa tabela.
Agora não consigo fazer uma função para separar os cancerosos(os que acabam em em 1) e os não cancerosos(acabem em 2)

estão aqui as duas funções criadas:

Citar:function dados=ledados(url)
%dados=ledados(url)
%recebe o url das amostras
%devolve a matriz numérica da amostra com os dados dos 400 genes
%e o ultimo valor indica se é ou não um tecido canceroso
[dadosStr,sucesso]=urlread(url);
if sucesso
dados=str2num(dadosStr);
else
dados=[];
disp('whop whop');
end
end

Citar:function dado=tabela(vector)
%dado=tabela(vector)
%recebe os vectores contidos num determinado url
%devolve as matrizes numéricas contidos no url e coloca-os
%a todos em colunas seguidas
for k=1:length(vector);
b=num2str(k);
a=strcat(vector, 'amostra',b);
u=ledados(a);
for j=1:length(u);
v(j,k)=u(j);
end
end
dado=v
end

E aqui está um resumo para quem nao quiser ler o enunciado:

Resumidamente o trabalho é o seguinte:

Temos o seguinte url http://ssdi.di.fct.unl.pt/ice/b/tp1/ , que tem 36 amostras.
http://ssdi.di.fct.unl.pt/ice/b/tp1/amostra1, http://ssdi.di.fct.unl.pt/ice/b/tp1/amostra2 até http://ssdi.di.fct.unl.pt/ice/b/tp1/amostra36, têm cada uma 401 linhas. Da linha 1 até à linha 400, representam 400 genes. A linha 401 apenas indica se o tecido é canceroso (aparece 1) ou não aparece (2).

O primeiro passo é colocar todas as amostras em colunas como mostra o seguinte exemplo:
[Imagem: image.jpg]
Ou seja fica com uma matriz 401x36.
Esta já esta feita é a tabela(url) acima postada.

O segundo passo é fazer uma função que separe os tecidos cancerosos dos não cancerosos, ou seja, duas matrizes uma com os 1 no final e outra com os 2 no final.

O terceiro e quarto passos, são criar uma função para a média e outra para o desvio padrão de cada gene (linha) e juntá-las às duas matrizes anteriormente separadas aqui vai um exemplo de como deverá ser o resultado final:
Cancerosos
[Imagem: image.jpg]

Não canceroso
[Imagem: image.jpg]

Depois disto é criar uma função para a calcular a discrepância, a discrepância é calculada de seguinte forma:
[Imagem: image.jpg]

Depois aparece algo assim:
[Imagem: image.jpg]

Obrigado LOL