Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
%Seletor Aleatório - VP (R) %Limpeza de variáveis e prompt antes da execução do programa clear; clc; %Importação dos dados (de um arquivo texto, presente na mesma pasta do programa) Banco_de_dados=load('nome do arquivo.txt'); %Montagem aleatória Num_Selecionados=0; %Variável que comportará o número de indivíduos selecionados Repete=1; %Contadores de repetição Contador=0; Igualdade=0; Contador2=1; [linhas,colunas]=size(Banco_de_dados); %Obtenção das dimensões da matriz Num_Selecionados=round(linhas/3); %O total de selecionados será de um terço do banco de dados (ALTERÁVEL: número de selecionados; pode requerer round) marcador=zeros(Num_Selecionados,1); %Vetor para "marcar" indivíduos já escolhidos (para não haver escolha repetida) Selecionados=zeros(Num_Selecionados,colunas); %Matriz nula que receberá todos os indivíduos while Repete==1 seletor=round(rand*1000); %Seletor de indivíduos; escolha aleatória (0<x<1000) (ALTERÁVEL: multiplicador do rand) if (seletor<=linhas)&&(seletor>0) %Se o número do seletor corresponder ao número de algum indivíduo do banco (0<x<=linhas)... for Contador=1:length(marcador) %Verificando se o indivíduo sorteado já não foi escolhido, percorrendo o vetor "marcador" if seletor==marcador(Contador) Igualdade=Igualdade+1; %Se houver correspondência, a igualdade é detectada end end if Igualdade==0 %Se o indivíduo ainda não foi escolhido... marcador(Contador2)=seletor; %O indivíduo é "marcado" Selecionados(Contador2,1:colunas)=Banco_de_dados(seletor,1:colunas); %O indivíduo é inserido na matriz Contador2=Contador2+1; %Variação do contador (próxima linha a ser preenchida) end end Igualdade=0; %Reiniciando o contador de igualdade if Contador2>Num_Selecionados %Quando o contador extrapolar o limite de casas/linhas, parar a repetição Repete=0; end end
Compartilhar