{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [], "collapsed_sections": [ "J-Hq6vzNjc_9" ] }, "kernelspec": { "name": "python3", "display_name": "Python 3" } }, "cells": [ { "cell_type": "code", "metadata": { "id": "OB5mO6A8vc3f" }, "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "from google.colab import files" ], "execution_count": 2, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "J-Hq6vzNjc_9" }, "source": [ "# Comentários do Exercício 1: opções para selecionar elementos de um vetor" ] }, { "cell_type": "code", "metadata": { "id": "FJe7jS6DXpNj" }, "source": [ "# Obs1.: \n", "# A geometria de aquisição são parâmetros de entrada, e variáveis para o programa\n", "# gerar o vetor \"x\" em função das variáveis (xmin, dx e NG)\n", "\n", "xmin= \n", "dx=\n", "NG=\n", "x=np.arange(xmin, (NG * dx + xmin), dx)\n" ], "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "lkVW0J_Fg1Gw" }, "source": [ "```\n", "#Obs2.:\n", "# Opções para selecionar os valores do vetor x a partir de xc (distância crítica)\n", "```\n", "- nome_do_vetor[começo:fim:passo] - retorna um array discretizado de acordo com as **posições** indicadas nos parâmetros [começo:fim:passo], ou seja, seleciona trechos de um vetor. A posição \"fim\" não é inserida (assim como no np.arange)\n", "\n", "Obs.: Só que no np.arange \"fim\" é o valor do elemento\n", "e na seleção vetor[começo:\"fim\"] é uma posição maior que a posição do último elemento" ] }, { "cell_type": "code", "source": [ "xmin=2\n", "dx=2\n", "NG=24\n", "x=np.arange(xmin, (NG * dx + xmin), dx)\n", "print (x)\n", "\n", "xc1=18.2\n", "print (\"xc1\", xc1,\"int(xc1/dx) =\", int(xc1/dx)) \n", "print (\"xc1\", xc1) \n", "\n", "xr1=x[int(xc1/dx):len(x)]\n", "print (\"xr1\",xr1) \n", "\n", "xr1=x[int(xc1/dx):]\n", "print (\"xr1\",xr1) \n" ], "metadata": { "id": "qNetPZcDEYP9" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "HT-MJ4Z5c9Pb" }, "source": [ "#outra opção\n", "\n", "xr1=x[x>xc1]\n", "print (\"x[x>xc1]\",xr1)\n", "xr1=x[x>=xc1]\n", "print (\"x[x>=xc1]\",xr1)\n", "\n" ], "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "5hV9R4q9ne8U" }, "source": [ "# Laços no Python: \"for\" e \"while\"" ] }, { "cell_type": "code", "metadata": { "id": "JiN4WDN-ltqB" }, "source": [ "for i in range(1,10): # \"i\" é uma variável, que pode ser usada como um contador \n", " print(i) # range(Num_início,Num_fim,passo) \n", " # (o último número do contador \"i\" é menor que Num_fim)\n", " # o passo default é 1" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "YyYfYQzXqBHW" }, "source": [ "for i in range(1,10,2): #definindo um passo=2\n", " print(i)" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "xefS-wx_pgwa" }, "source": [ "for i in [1, 20, 15]: #em uma sequência de valores, utiliza todos os elementos\n", " print(i)" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "5kTj6LX3oMgl" }, "source": [ "print (x)\n", "for num in x:\n", " print(num)" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "i_Wn_ZJDnl93" }, "source": [ "i = 0 #com o comando \"while\", a variável \"i\" tem que ser declarada antes e atualizada dentro do laço\n", "while i <= 10:\n", " print(i)\n", " i += 2\n", " #i=i+1" ], "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "Hhpq1Mr33aLQ" }, "source": [ "**Observações:**\n", "- o símbolo **:** encerra a 1a. linha do comando (antes da sequência de comandos nas próximas linhas)\n", "- a identação controla o final do laço\n", "- em muitas situações é conveniente usar variáveis para passar os parâmetros para o \"range\", ou para delimitar o \"while\"" ] }, { "cell_type": "code", "metadata": { "id": "NvYFE2lrreMG" }, "source": [ "n1=\n", "Nfim=\n", "for i in range(n1,Nfim):\n", " #lista de comandos\n", " comando1\n", " comando2\n", "\n", "comando fora do laço" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "RQx9imZSr9Db" }, "source": [ "i = 0 #com o comando \"while\", a variável \"i\" tem que ser declarada antes e atualizada dentro do laço\n", "Nfim = \n", "while i <= Nfim:\n", " comando1\n", " comando2\n", " i=i+1\n", "\n", "comando fora do laço\n" ], "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "TMMyvM4rxLWE" }, "source": [ "# Estruturas de condição\n", "- if\n", "\n", "- if else\n", "\n", "- if elif else\n", "\n", "== (operador de condição de igualdade, ou seja, verifica a igualdade entre dois valores)\n", "\n", "!= (operador que verifica a diferença entre dois valores)\n", "\n", "outros operadores de condição: > >= < <=\n", "\n", "da mesma forma que nos comandos de laço - usar o símbolo : para finalizar as linhas de comando; e a identação para definir o conjunto de linhas que fazem parte do comando " ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "vlIb9niyxwCs", "outputId": "ca13fd3b-de59-47b0-eb30-be0d8ef0f3cd" }, "source": [ "num=5\n", "if num >=0:\n", " print(\"passou no teste de condição (num>0)\")\n", " print(\"num =\",num)\n", "\n", "print()\n", "if num >= 10:\n", " print(\"passou no teste de condição (num>10)\")\n", " print(\"num =\",num)\n", "else:\n", " print(\"não passou no teste de condição\")\n", " print(\"num < 10\")\n", "\n", "print()\n", "if num >= 10:\n", " print(\"num=\",num)\n", "elif num==10:\n", " print(\"num = 10\")\n", "else:\n", " print(\"num < 10 (\",num, \")\")" ], "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "passou no teste de condição (num>0)\n", "num = 5\n", "\n", "não passou no teste de condição\n", "num < 10\n", "\n", "num < 10 ( 5 )\n" ] } ] }, { "cell_type": "markdown", "metadata": { "id": "RhT6Lotug9GL" }, "source": [ "# Matrizes (variáveis)\n", "\n", "A seguir, alguns exemplos e propriedades para brincar e familiarizar com as Matrizes:" ] }, { "cell_type": "markdown", "metadata": { "id": "O4bOLCIYxCA-" }, "source": [ "## **1. Criar uma matriz com (10X10) elementos iguais a zero**" ] }, { "cell_type": "code", "metadata": { "id": "Pv-tf7eexCUR", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "5501cb3f-8543-4ea8-8fa8-b83e1ecc7cc9" }, "source": [ "Nlinhas=10\n", "Ncolunas=5\n", "MATRIZ=np.zeros([Nlinhas,Ncolunas])\n", "print(MATRIZ)" ], "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[[0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0.]]\n" ] } ] }, { "cell_type": "markdown", "metadata": { "id": "ubRqN6aD9u4c" }, "source": [ "## **2.1 Trocar os elementos da Diagonal de \"zero\" para \"1\"**" ] }, { "cell_type": "code", "metadata": { "id": "_w5Um_Qs9quF", "colab": { "base_uri": "https://localhost:8080/", "height": 187 }, "outputId": "30fe0c48-1928-4c55-dbc4-48af0dbdb6c7" }, "source": [ "for i in range(0,Nlinhas): \n", " MATRIZ[i,i]=1 #como o contador \"i\" aparece nos índices [linha,coluna], a posição do elemento vai mudando de linha e de coluna (construindo a diagonal)\n", " \n", "print(MATRIZ)" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "[[1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n", " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n", " [0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n", " [0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]]\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "WoLpmYAlkBUU", "outputId": "8dad1665-c753-43ac-e555-735062e22f20" }, "source": [ "len(MATRIZ[1])" ], "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "5" ] }, "metadata": {}, "execution_count": 13 } ] }, { "cell_type": "markdown", "metadata": { "id": "UDcX6jED9eXW" }, "source": [ "## **2.2 Trocar os elementos da Diagonal para o valor de \"i\"**" ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ev695P2H8nA4", "outputId": "62638179-04be-4398-9c18-f8c1a258bd41" }, "source": [ "for i in range(0,10): \n", " MATRIZ[i,i]=i #como o contador \"i\" aparece nos índices [linha,coluna], a posição do elemento vai mudando de linha e de coluna (construindo a diagonal)\n", " \n", "print(MATRIZ)" ], "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n", " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n", " [0. 0. 2. 0. 0. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 3. 0. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 4. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 5. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 6. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 0. 7. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 0. 0. 8. 0.]\n", " [0. 0. 0. 0. 0. 0. 0. 0. 0. 9.]]\n" ] } ] }, { "cell_type": "markdown", "metadata": { "id": "s9TyPKSFArX2" }, "source": [ "## Imprimir só os elementos da diagonal" ] }, { "cell_type": "code", "metadata": { "id": "e3CVHUVsAxM4", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "bacf89ff-1c62-419a-9b4b-d94ab7cfba34" }, "source": [ "for i in range(0,10):\n", " print (MATRIZ[i,i])" ], "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "0.0\n", "1.0\n", "2.0\n", "3.0\n", "4.0\n", "5.0\n", "6.0\n", "7.0\n", "8.0\n", "9.0\n" ] } ] }, { "cell_type": "markdown", "metadata": { "id": "NWqu2z9uBGA5" }, "source": [ "# Acessando diferentes posições da Matriz" ] }, { "cell_type": "code", "metadata": { "id": "6CUQgPAXBduo", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "38cf2011-118d-44c3-ef09-a138f04421b5" }, "source": [ "#linha 1 da Matriz\n", "linha1=MATRIZ[0]\n", "print(linha1)" ], "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n" ] } ] }, { "cell_type": "code", "metadata": { "id": "7ruhKvqCBM6P", "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "outputId": "62741e80-e44a-419a-85c1-bd5a3447badb" }, "source": [ "#linha 2 da Matriz\n", "linha2=MATRIZ[1]\n", "print(linha2)" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "[0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "eXo5kEWXCdHj", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "1a3b9deb-6518-4df1-95a8-fd0910f2f862" }, "source": [ "# as duas primeiras linhas\n", "linhas1e2=MATRIZ[:2]\n", "print(\"linhas1e2\")\n", "print(linhas1e2)\n", "\n", "# da linha 3 até a última linha\n", "linhas3emdiante=MATRIZ[2:]\n", "print(\"linhas3emdiante\")\n", "print(linhas3emdiante)" ], "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "linhas1e2\n", "[[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n", " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]]\n", "linhas3emdiante\n", "[[0. 0. 2. 0. 0. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 3. 0. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 4. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 5. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 6. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 0. 7. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 0. 0. 8. 0.]\n", " [0. 0. 0. 0. 0. 0. 0. 0. 0. 9.]]\n" ] } ] }, { "cell_type": "code", "metadata": { "id": "AV4dddwiB5XF", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "bbc50e82-8b30-4c69-ff13-3cf822414b57" }, "source": [ "#os dois primeiros elementos da linha 2 ( até a coluna 2) #a posição da linha começa do 0\n", "elementos=MATRIZ[1,:2] \n", "print(elementos)" ], "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[0. 1.]\n" ] } ] }, { "cell_type": "code", "metadata": { "id": "wpe_z1vXC-gi", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "fada06f0-95fc-46c2-ffcb-1c836074b8e5" }, "source": [ "#alterando o valor de um elemento da matriz, para diferenciar a linha 1 da coluna 1)\n", "MATRIZ[1,0]=10\n", "print(MATRIZ)" ], "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n", " [10. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n", " [ 0. 0. 2. 0. 0. 0. 0. 0. 0. 0.]\n", " [ 0. 0. 0. 3. 0. 0. 0. 0. 0. 0.]\n", " [ 0. 0. 0. 0. 4. 0. 0. 0. 0. 0.]\n", " [ 0. 0. 0. 0. 0. 5. 0. 0. 0. 0.]\n", " [ 0. 0. 0. 0. 0. 0. 6. 0. 0. 0.]\n", " [ 0. 0. 0. 0. 0. 0. 0. 7. 0. 0.]\n", " [ 0. 0. 0. 0. 0. 0. 0. 0. 8. 0.]\n", " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 9.]]\n" ] } ] }, { "cell_type": "code", "metadata": { "id": "PYFOguJwDMrF", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "7f67336f-495e-4039-935a-3b7d1bbad5a9" }, "source": [ "#coluna 1 da matriz\n", "coluna1=MATRIZ[:,0]\n", "print(coluna1)" ], "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[ 0. 10. 0. 0. 0. 0. 0. 0. 0. 0.]\n" ] } ] }, { "cell_type": "code", "metadata": { "id": "GCbJHP_cNaO7", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "1cbb7c20-5aff-4a72-f49f-992f49c129f8" }, "source": [ "#na linha acima, foram separados os valores da primeira coluna (índice zero depois da vírgula [:,0]) \n", "#mas o \"print\" dos dados foi na forma de linha. \n", "# Se quiser \"printar\" como coluna, tem que usar o comando \"for\"\n", "\n", "for i in range(0,Nlinhas):\n", " print (MATRIZ[i,0])\n" ], "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "0.0\n", "10.0\n", "0.0\n", "0.0\n", "0.0\n", "0.0\n", "0.0\n", "0.0\n", "0.0\n", "0.0\n" ] } ] }, { "cell_type": "markdown", "metadata": { "id": "E1SrPIj7BBUw" }, "source": [ "# np.reshape e np.transpose" ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "7b6Tm3CxBSyn", "outputId": "4e36990a-1d06-4b11-c98a-6c0fae6e087b" }, "source": [ "a=np.array([10,20,25,50,75,100])\n", "print(a)\n", "M1=np.reshape(a, (2,3))\n", "print(\"matriz= \\\"reformatada do vetor\\\"\")\n", "print(M1)" ], "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[ 10 20 25 50 75 100]\n", "matriz= \"reformatada do vetor\"\n", "[[ 10 20 25]\n", " [ 50 75 100]]\n" ] } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "BR5b5qqPEgqr", "outputId": "670d3913-9286-4d19-d25d-0fadcfa09c6c" }, "source": [ "a=np.arange(6)\n", "print(\"vetor\")\n", "print(a)\n", "\n", "M1=np.reshape(a, (2,3))\n", "print(\"matriz= \\\"reformatada do vetor\\\"\")\n", "print(M1)" ], "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "vetor\n", "[0 1 2 3 4 5]\n", "matriz= \"reformatada do vetor\"\n", "[[0 1 2]\n", " [3 4 5]]\n" ] } ] }, { "cell_type": "code", "metadata": { "id": "3-URsjYQCVv3", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "b088d2c8-da9e-4c61-df4a-6256f76835da" }, "source": [ "#sintaxe para executar os dois comandos acima juntos\n", "print (\"Matrizes geradas a partir do vetor\")\n", "M1 = np.arange(6).reshape((2,3))\n", "print (\"M1\")\n", "print (M1)\n", "\n", "M2=np.arange(6).reshape((3,2))\n", "print()\n", "print(\"M2\")\n", "print (M2)" ], "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Matrizes geradas a partir do vetor\n", "M1\n", "[[0 1 2]\n", " [3 4 5]]\n", "\n", "M2\n", "[[0 1]\n", " [2 3]\n", " [4 5]]\n" ] } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "0HEZhp_GC2sy", "outputId": "fbba1578-da3b-47dc-85f6-b23fa1149844" }, "source": [ "print (\"Matriz M1 transposta\")\n", "print (np.transpose(M1))" ], "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Matriz M1 transposta\n", "[[0 3]\n", " [1 4]\n", " [2 5]]\n" ] } ] }, { "cell_type": "code", "metadata": { "id": "gHWNF-nITUxv" }, "source": [], "execution_count": null, "outputs": [] } ] }