Exercícios Resolvidos de Entrar e salvar arquivos de dados

Ver Teoria

Enunciado

A tabela abaixo apresenta o torque de um motor à combustão em função da velocidade do motor e da porcentagem do curso do acelerador. Uma porcentagem igual a 100% indica que o acelerador está sendo pisado até o final do curso. Uma porcentagem igual a 0% indica que o motorista não está pisando no acelerador.

Com o MATLAB, execute as seguintes tarefas:

  1. Copie e cole os dados da tabela, sem o cabeçalho, para um bloco de notas e salve-o com terminação .txt;
  2. Carregue o arquivo .txt no MATLAB;
  3. Encontre a razão, para cada velocidade, entre os torques de cada porcentagem de curso e os torques para um curso de 100%. Exemplo: a razão entre o torque do motor com um curso de 75% e com um curso a 100% é de 450/500 = 0,9, para uma velocidade de 500 rpm ;
  4. Crie uma matriz com a velocidade do motor e as razões de torque;
  5. Salve em um arquivo .txt a matriz criada no item anterior.

Passo 1

Neste exercício, vamos praticar a função load() do MATLAB. Primeiro, vamos criar um arquivo de texto com a tabela do enunciado. Em seguida, vamos carregar esse arquivo de texto no MATLAB para podermos manipular os dados.

O resultado da manipulação será salvo em um arquivo .txt.

Passo 2

A primeira etapa do exercício consiste em passar os dados da tabela para o Bloco de Notas, como no print abaixo:

Lembre de somente passar para o bloco de notas os valores numéricos, pois quando um arquivo de texto é carregado no MATLAB com a função load(), ele transforma os dados em uma matriz.

No print acima, as colunas estão separadas por espaços e alguns Tabs, fiz dessa forma para deixar o arquivo organizado e identificar bem as colunas. Mas se você separar as colunas somente com um espaço ou um Tab, dá na mesma, fica à gosto do freguês.

Após fazer esse copia e cola, salve o arquivo em formato .txt. Eu salvei o meu arquivo com o nome “motor_pedal.txt”, mas você pode chamar do que quiser. Com isso, terminamos a letra a do exercício

Passo 3

Resolveremos a letra b usando a função load(). No MATLAB, crie um script novo e salve-o na pasta onde você salvou seu arquivo .txt. Então, digite no script o seguinte comando:

load('motor_pedal.txt')

Com esse comando, vamos carregar no MATLAB os valores numéricos do arquivo de texto “motor_pedal.txt”. Lembre de adaptar o comando caso você tenha dado um nome diferente para seu arquivo de texto.

O comando acima armazena os dados do arquivo de texto em uma matriz, cujo nome será o nome do arquivo sem a terminação. No meu caso, será criada uma matriz chamada motor_pedal. Lembre que a sua matriz pode ter um nome diferente, caso você tenha chamado seu arquivo .txt com um nome diferente.

Nosso script ficou assim:

Podemos ver como ficou a matriz que o MATLAB criou após rodarmos o script e entrarmos com o nome da matriz no Command Window, como no print abaixo:

Note que são os mesmos valores do arquivo .txt, mas com 1000 colocado em evidência.

Com isso, concluímos a letra b do exercício.

Passo 4

Para podermos responder o restante da questão, devemos criar alguns vetores, cada um igual a uma coluna da matriz. Desta forma, ficará mais fácil de calcular as razões de torque e criar a matriz contendo as razões.

Para transformar as colunas da matriz motor_pedal em colunas, digite as seguintes linhas de código no nosso script:

vel = motor_pedal(:,1);

pedal_100 = motor_pedal(:,2);

pedal_75 = motor_pedal(:,3);

pedal_50 = motor_pedal(:,4);

pedal_25 = motor_pedal(:,5);

pedal_0 = motor_pedal(:,6);

Repara que, dentro dos parênteses, temos sempre dois pontos “:” antes da vírgula. O que vem antes da vírgula indica quais linhas estamos selecionando. E, quando usamos dois pontos, significa que estamos pegando todas as linhas, ou seja, a coluna inteira. Já o valor que vem depois da vírgula indica qual coluna estamos selecionando em cada caso.

Na primeira linha, armazenamos a primeira coluna da matriz motor_pedal na variável vel. Logo, vel é um vetor que contém os valores de velocidade do motor.

Na segunda linha, armazenamos a segunda coluna da matriz motor_pedal na variável pedal_100. Logo, pedal_100 é um vetor que contém os valores de torque do motor quando o acelerador está sendo pisado até o fundo.

Da terceira linha em diante, a lógica é a mesma. Armazenamos uma coluna da matriz motor_pedal, contendo valores de torque para uma determinada porcentagem de curso do acelerador, em uma variável chamada pedal_ seguida da porcentagem de curso.

Após digitar essas linhas de código, o script fica assim:

Tendo criado um vetor para cada coluna de motor_pedal, podemos responder o restante da questão.

Passo 5

A letra c pede para calcularmos a razão, para cada velocidade, entre os torques de cada porcentagem de curso e os torques para um curso de 100%. Para fazermos isso, incluímos as seguintes linhas de código no nosso script:

razao_100 = pedal_100./pedal_100;

razao_75 = pedal_75./pedal_100;

razao_50 = pedal_50./pedal_100;

razao_25 = pedal_25./pedal_100;

razao_0 = pedal_0./pedal_100;

Na primeira linha de código, dividimos cada elemento do vetor pedal_100 pelo elemento que está na mesma posição no vetor pedal_100 e salvamos o vetor resultante na variável razao_100. O vetor razao_100 será um vetor cujos todos os elementos serão iguais a 1, visto que estamos trabalhando com dois vetores iguais.

Na segunda linha de código, dividimos cada elemento do vetor pedal_75 pelo elemento que está na mesma posição no vetor pedal_100 e salvamos o vetor resultante na variável razao_75. Isso faz com que consigamos encontrar a razão de torque para cada velocidade do motor.

Da terceira linha de código em diante, é a mesma lógica, sendo uma linha para cada porcentagem de curso do acelerador.

Nosso script está assim agora:

A resposta da letra c são os vetores razao_100, razao_75, razao_50, razao_25 , razao_0.

Passo 6

A letra d nos pede para criarmos uma matriz com a velocidade do motor e as respectivas razões de torque. Para responder a esta questão, vamos concatenar o vetor vel, que contém a velocidade do motor, com os vetores que contêm as razões de torque para cada porcentagem de curso do acelerador.

Digite a linha de código abaixo no script para realizar a concatenação:

razoes = [vel razao_100 razao_75 razao_50 razao_25 razao_0];

Com essa linha de código, o MATLAB cria uma matriz chamada razoes cuja primeira coluna contém os valores do vetor vel; a segunda coluna contém os valores do vetor razao_100; a terceira coluna contém os valores do vetor razao_75; e assim sucessivamente.

Atualizando nosso script:

Rodando o código e pedindo para o MATLAB imprimir a matriz razoes, podemos ver como ela ficou:

Está aí a resposta da letra d.

Passo 7

Finalmente, chegamos ao último item do exercício. Nele, temos que salvar a matriz criada na letra d em um arquivo .txt. Para fazer isso, acrescente no final do script o comando save():

save('motor_pedal_razoes.txt','razoes','-ascii')

Lembrando que a função save() tem a seguinte estrutura:

save('Nome do arquivo','variável','-ascii')

Logo, salvamos a matriz razoes em um arquivo de texto chamado “motor_pedal_razoes.txt”.

Nosso código final ficou assim:

Ao rodarmos o código acima, um arquivo chamado “motor_pedal_razoes.txt” será criado na mesma pasta onde se encontra o script do MATLAB. O arquivo conterá a matriz razoes, com os valores em notação científica:

Está aí a solução da letra d.

Resposta

Ei, a resposta está no passo a passo :)