Re: Matlab – luogo delle radici – PGF & TikZ

#65277
tonegas
Partecipante
    Up
    0
    Down
    ::


    Ho modificato il codice che crea l’immagine con le due nuove features :

    – In più sarebbe bello che capisse in automatico il numero di campioni totale così da inserire gli zeri nel grafico.
    – sarebbe bello si riuscisse a fare in automatico le coppie [numero reale, numero immaginario] indipendentemente dal numero di poli.

    `
    \documentclass[landscape,a5paper,11pt]{article}
    \usepackage[utf8x]{inputenc} % utf8 encoding

    \usepackage{color} % change text color

    \usepackage{tikz}
    \usepackage{pgfplots}
    \usepackage{pgfplotstable}

    \usepackage[active,tightpage]{preview}
    \PreviewEnvironment{tikzpicture}
    \setlength\PreviewBorder{0pt}

    \usetikzlibrary{plotmarks}

    %nome del file
    \newcommand{\name}{dati.mat}

    \begin{document}
    \begin{tikzpicture}
    \pgfplotstableread[header=true]{\name}{\datawhead}
    \pgfplotstableread[header=false]{\name}{\data}
    \pgfplotstablegetrowsof{\datawhead}
    \pgfmathsetmacro{\rows}{\pgfplotsretval}
    \pgfplotstablegetcolsof{\data}
    \pgfmathsetmacro{\cols}{\pgfplotsretval}

    \pgfmathsetmacro{\goodrows}{\rows-2}
    \pgfmathsetmacro{\goodcols}{(\cols-1)/2-1}

    \begin{axis}[ymin=-150,ymax=150,xmin=-19,xmax=2,xmajorgrids,ymajorgrids,xtick={0},ytick={0}]
    \foreach \re in {0,1,…,\goodcols}{

    \pgfmathparse{int(\re + 4)}\let\im=\pgfmathresult

    \pgfplotstablegetelem{0}{\re}\of\datawhead
    \let\varpr = \pgfplotsretval
    \pgfplotstablegetelem{0}{\im}\of\datawhead
    \let\varpi = \pgfplotsretval
    \addplot[mark = x] coordinates {(\varpr,\varpi)};

    \pgfplotstablegetelem{\goodrows}{\re}\of\datawhead
    \let\varzr = \pgfplotsretval
    \pgfplotstablegetelem{\goodrows}{\im}\of\datawhead
    \let\varzi = \pgfplotsretval
    \addplot[mark = o] coordinates {(\varzr,\varzi)};
    \addplot[no marks] table[x index = \re, y index = \im]{\name};
    }
    \end{axis}
    \end{tikzpicture}
    \end{document}
    `

    Ora una cosa che mi chiedevo è se era possibile rendere il grafico un po’ smooth.
    Ho provato ma il risultato è pessimo (la funzione non segue assolutamente l’andamento corretto);
    mi chiedevo se esistevano diverse tipologie di smooth magari che utilizzano algoritmi diversi per unire i punti nel grafico oppure se esistevano comandi differenti per questo scopo.
    Il resto va bene il grafico risulta però un po’ povero e quindi non molto gradevole chi avesse delle idee per completarlo sono beneaccette.
    Di seguito inserisco anche dei dati di prova per testare il codice.

    `
    0.0000000e+000 -1.6083257e+001 -1.6083257e+001 -5.3334869e+000 0.0000000e+000 6.5534488e+001 -6.5534488e+001 0.0000000e+000 0.0000000e+000
    -1.0387366e-001 -1.6083215e+001 -1.6083215e+001 -5.2296956e+000 0.0000000e+000 6.5538109e+001 -6.5538109e+001 0.0000000e+000 8.1490264e+000
    -3.1745913e-001 -1.6083135e+001 -1.6083135e+001 -5.0162712e+000 0.0000000e+000 6.5545105e+001 -6.5545105e+001 0.0000000e+000 2.3893509e+001
    -1.1028158e+000 -1.6082891e+001 -1.6082891e+001 -4.2314017e+000 0.0000000e+000 6.5565632e+001 -6.5565632e+001 0.0000000e+000 7.0057418e+001
    -2.5830389e+000 -1.6082690e+001 -1.6082690e+001 -2.7515817e+000 0.0000000e+000 6.5581962e+001 -6.5581962e+001 0.0000000e+000 1.0675388e+002
    -2.6673108e+000 -1.6082689e+001 -1.6082689e+001 -2.6673110e+000 0.0000000e+000 6.5582010e+001 -6.5582010e+001 0.0000000e+000 1.0686074e+002
    -2.6673115e+000 -1.6082688e+001 -1.6082688e+001 -2.6673115e+000 -8.4271264e-002 6.5582058e+001 -6.5582058e+001 8.4271264e-002 1.0696760e+002
    -2.6678868e+000 -1.6082113e+001 -1.6082113e+001 -2.6678868e+000 -2.5575616e+000 6.5625929e+001 -6.5625929e+001 2.5575616e+000 2.0541319e+002
    -2.6707166e+000 -1.6079283e+001 -1.6079283e+001 -2.6707166e+000 -5.7194884e+000 6.5803680e+001 -6.5803680e+001 5.7194884e+000 6.0228567e+002
    -2.6837242e+000 -1.6066276e+001 -1.6066276e+001 -2.6837242e+000 -1.0386681e+001 6.6332966e+001 -6.6332966e+001 1.0386681e+001 1.7659432e+003
    -2.7617205e+000 -1.5988279e+001 -1.5988279e+001 -2.7617205e+000 -1.7746353e+001 6.7951656e+001 -6.7951656e+001 1.7746353e+001 5.1778675e+003
    -3.2851406e+000 -1.5464859e+001 -1.5464859e+001 -3.2851406e+000 -2.8509726e+001 7.3189874e+001 -7.3189874e+001 2.8509726e+001 1.5181865e+004
    -5.5465705e+000 -1.3203430e+001 -1.3203430e+001 -5.5465705e+000 -3.9760466e+001 9.0611038e+001 -9.0611038e+001 3.9760466e+001 4.4514279e+004
    -6.1863124e+000 -1.2563688e+001 -1.2563688e+001 -6.1863124e+000 -4.1412378e+001 9.7010898e+001 -9.7010898e+001 4.1412378e+001 5.5264861e+004
    -6.6944716e+000 -1.2055528e+001 -1.2055528e+001 -6.6944716e+000 -4.2556842e+001 1.0321275e+002 -1.0321275e+002 4.2556842e+001 6.6015444e+004
    -7.4211868e+000 -1.1328813e+001 -1.1328813e+001 -7.4211868e+000 -4.4012190e+001 1.1492517e+002 -1.1492517e+002 4.4012190e+001 8.7516610e+004
    -8.2357836e+000 -1.0514216e+001 -1.0514216e+001 -8.2357836e+000 -4.5465781e+001 1.3582335e+002 -1.3582335e+002 4.5465781e+001 1.3051894e+005
    -9.9961508e+000 -8.7538492e+000 -8.7538492e+000 -9.9961508e+000 -4.8249472e+001 2.7249372e+003 -2.7249372e+003 4.8249472e+001 5.9387299e+007
    -1.0000000e+001 Inf Inf -1.0000000e+001 -4.8255274e+001 0.0000000e+000 0.0000000e+000 4.8255274e+001 Inf
    `

    Gastone

    Go to top