<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2857330337650165723</id><updated>2018-03-06T09:16:40.557-08:00</updated><category term="MATLAB"/><category term="LaTeX"/><category term="Matemáticas"/><category term="Oceanografía"/><category term="Programación"/><title type='text'>evaristor</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://evaristor.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2857330337650165723/posts/default?alt=atom'/><link rel='alternate' type='text/html' href='http://evaristor.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Evaristo Rojas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-vZLQ2VcmLNA/AAAAAAAAAAI/AAAAAAAAMs0/T9p51DLrIjY/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2857330337650165723.post-1394030645243277871</id><published>2015-10-19T15:54:00.000-07:00</published><updated>2015-11-13T09:02:16.540-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programación"/><title type='text'>Cómo escribir un buen mensaje de consignación</title><content type='html'>&lt;p&gt;La siguiente es una lista de recomendaciones para escribir mensajes de consignación útiles.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;El mensaje de consignación debe describir qué cambio se hizo y por qué&lt;/li&gt;&lt;li&gt;El mensaje debe comenzar con un verbo en modo imperativo para describir qué cambio se hizo&lt;/li&gt;&lt;li&gt;Describir &lt;em&gt;por qué&lt;/em&gt; se hizo el cambio es más importante que describir &lt;em&gt;qué&lt;/em&gt; cambio se hizo&lt;/li&gt;&lt;li&gt;Cada línea debe ser menor o igual a 80 caracteres&lt;/li&gt;&lt;li&gt;La primer línea debe ser una oración completa&lt;/li&gt;&lt;li&gt;El resto del mensaje se debe ser un texto formado por párrafos&lt;/li&gt;&lt;li&gt;El mensaje puede ser tan extenso como sea necesario para describir la consignación de forma detallada&lt;/li&gt;&lt;li&gt;Es más fácil redactar los mensajes cuando se hacen muchas consignaciones con pocos cambios en lugar de pocas consignaciones con muchos cambios&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;small&gt;Gracias a Yutzil y David por compilar la primer versión de esta lista.&lt;/small&gt;&lt;/p&gt;&lt;p class=&quot;footer&quot;&gt;&lt;br&gt;&lt;a href=&quot;https://bitbucket.org/evaristor/blog/src/default/Published/md/mensaje_de_consignacion.md&quot;&gt;Código fuente de esta entrada&lt;/a&gt;&lt;br&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2857330337650165723/posts/default/1394030645243277871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2857330337650165723/posts/default/1394030645243277871'/><link rel='alternate' type='text/html' href='http://evaristor.blogspot.com/2015/10/como-escribir-un-buen-mensaje-de.html' title='Cómo escribir un buen mensaje de consignación'/><author><name>Evaristo Rojas</name><uri>https://plus.google.com/112278723014140883504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-vZLQ2VcmLNA/AAAAAAAAAAI/AAAAAAAAMs0/T9p51DLrIjY/s512-c/photo.jpg'/></author><gd:extendedProperty name="commentSource" value="1"/><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD"/></entry><entry><id>tag:blogger.com,1999:blog-2857330337650165723.post-6842238182296012979</id><published>2015-05-04T17:49:00.000-07:00</published><updated>2015-11-13T09:02:02.306-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MATLAB"/><title type='text'>Guía de estilo para MATLAB: Documentación</title><content type='html'>&lt;div class=&quot;content&quot;&gt;&lt;!--introduction--&gt;&lt;p&gt;La usabilidad de un programa depende de su documentaci&amp;oacute;n. Si el programa est&amp;aacute; bien documentado, ser&amp;aacute; posible usarlo f&amp;aacute;cilmente. De lo contrario, el programa ser&amp;aacute; in&amp;uacute;til. Aqu&amp;iacute; propongo el contenido m&amp;iacute;nimo en el texto de ayuda de funciones escritas en MATLAB.&lt;/p&gt;&lt;p&gt;Supongamos que creamos una funci&amp;oacute;n para sumar dos n&amp;uacute;meros&lt;/p&gt;&lt;p&gt;&lt;pre class=&quot;codeinput&quot;&gt;&lt;br /&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt; y = add(a,b)&lt;br /&gt;&lt;span class=&quot;keyword&quot;&gt;switch&lt;/span&gt; nargin&lt;br /&gt;    &lt;span class=&quot;keyword&quot;&gt;case&lt;/span&gt; 2&lt;br /&gt;        c = a + b;&lt;br /&gt;    &lt;span class=&quot;keyword&quot;&gt;case&lt;/span&gt; 1&lt;br /&gt;        c = a + a;&lt;br /&gt;    &lt;span class=&quot;keyword&quot;&gt;otherwise&lt;/span&gt;&lt;br /&gt;        c = NaN;&lt;br /&gt;&lt;span class=&quot;keyword&quot;&gt;end&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;Se deber&amp;aacute;n incluir al menos las siguientes secciones en el texto de ayuda:&lt;/p&gt;&lt;!--/introduction--&gt;&lt;h2&gt;Contenido&lt;/h2&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#1&quot;&gt;Cabecera&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#2&quot;&gt;Descripci&amp;oacute;n&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#3&quot;&gt;Autores&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#4&quot;&gt;Referencias&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#5&quot;&gt;Sintaxis&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#6&quot;&gt;Entrada&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#7&quot;&gt;Salida&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#8&quot;&gt;Ejemplos&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#9&quot;&gt;See also&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h2&gt;Cabecera&lt;a name=&quot;1&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;La primer l&amp;iacute;nea del texto de ayuda (llamada &lt;i&gt;H1&lt;/i&gt;) inicia con el nombre de la funci&amp;oacute;n y una breve descripci&amp;oacute;n de la funci&amp;oacute;n. Esta l&amp;iacute;nea es importante porque &lt;tt&gt;lookfor&lt;/tt&gt; busca en ella una palabra clave dada. Adem&amp;aacute;s, &lt;tt&gt;Contents&lt;/tt&gt; despliegan esta l&amp;iacute;nea para cada archivo &lt;tt&gt;.m&lt;/tt&gt; en el directorio de trabajo.&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;&lt;span class=&quot;comment&quot;&gt;% ADD  Suma dos n&amp;uacute;meros.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Descripci&amp;oacute;n&lt;a name=&quot;2&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;En esta secci&amp;oacute;n se presenta una descripci&amp;oacute;n detallada de la funci&amp;oacute;n en el contexto del problema general o el &amp;aacute;rea tem&amp;aacute;tica a la que pertenece. Se puede plantear el problema que la funci&amp;oacute;n atiende, describir las variables ambientales, proporcionar antecedentes, explicar la metodolog&amp;iacute;a y an&amp;aacute;lisis matem&amp;aacute;ticos usados.&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;&lt;span class=&quot;comment&quot;&gt;% Descripci&amp;oacute;n:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%     Suma dos n&amp;uacute;meros usando la suma de los n&amp;uacute;meros reales. Esta suma,&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%     junto con los n&amp;uacute;meros reales, cumplen con los cuatro axiomas de&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%     grupo: cerradura, asociatividad, existencia de elemento neutro y&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%     existencia de elementos inversos. Adem&amp;aacute;s, la suma es conmutativa, por&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%     lo que los reales con esta suma son un grupo abeliano.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Autores&lt;a name=&quot;3&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Adm&amp;aacute;s del nombre de los autores, es importante incluir alg&amp;uacute;n medio de contacto, por ejemplo, direcci&amp;oacute;n de correo electr&amp;oacute;nico.&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;&lt;span class=&quot;comment&quot;&gt;% Autor:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%     Evaristo Rojas &amp;lt;evaristo.rojas@islas.org.mx&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Referencias&lt;a name=&quot;4&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Debemos incluir las referencias en las que se encuentran los antecedentes de nuestra descripci&amp;oacute;n y las referencias en las que basamos los m&amp;eacute;todos y an&amp;aacute;lisis matem&amp;aacute;ticos. Tambi&amp;eacute;n podemos usar esta secci&amp;oacute;n para referir al lector a las definiciones de los t&amp;eacute;rminos usados.&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;&lt;span class=&quot;comment&quot;&gt;% Referencias:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%     - &amp;lt;a href=&quot;http://es.wikipedia.org/wiki/Grupo_abeliano&quot;&amp;gt;Grupo abeliano&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%     - &amp;lt;a href=&quot;http://es.wikipedia.org/wiki/Suma&quot;&amp;gt;Suma&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Sintaxis&lt;a name=&quot;5&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Enlistamos todas las posibles maneras en las que se puede invocar la funci&amp;oacute;n.&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;&lt;span class=&quot;comment&quot;&gt;% Sintaxis:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%     Y = add(A) suma A a s&amp;iacute; mismo.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%     Y = add(A,B) suma A mas B.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Entrada&lt;a name=&quot;6&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Enlistamos todos los posibles argumentos de entrada de la funci&amp;oacute;n, los cuales se mostraron en la secci&amp;oacute;n de &lt;i&gt;Sintaxis&lt;/i&gt;. Indicamos su clase y dominio. Debe quedar claro cual es la relaci&amp;oacute;n entre estos par&amp;aacute;metros y las variables del problema general.&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;&lt;span class=&quot;comment&quot;&gt;% Entrada:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%     A  (double)  N&amp;uacute;mero real que ser&amp;aacute; sumado.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%     B  (double)  N&amp;uacute;mero real que ser&amp;aacute; sumado.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Salida&lt;a name=&quot;7&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Enlistamos todos los valores de salida de la funci&amp;oacute;n, los cuales se mostraron en la secci&amp;oacute;n de &lt;i&gt;Sintaxis&lt;/i&gt;. Indicamos su clase y dominio.&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;&lt;span class=&quot;comment&quot;&gt;% Salida:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%     Y  (double)  Total de la suma.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Ejemplos&lt;a name=&quot;8&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Incluiremos ejeplos que sean aut&amp;oacute;nomos, es decir, que se puedan copiar y pegar en la ventana de comandos para ser ejecutados. Se deber&amp;aacute; incluir un ejemplo por cada manera mostrada en la secci&amp;oacute;n de  &lt;i&gt;Sintaxis&lt;/i&gt;.&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;&lt;span class=&quot;comment&quot;&gt;% Ejemplos:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%     Y = add(1); % devuelve Y = 2&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%     Y = add(2,3); % devuelve Y = 5&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%     Y = add(); % devuelve Y = NaN&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;See also&lt;a name=&quot;9&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Al incluir nombres de funciones al final del texto de ayuda en una l&amp;iacute;nea que inicie con &lt;tt&gt;% See also&lt;/tt&gt; se crear&amp;aacute;n enlaces hacia dichas funciones.&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;&lt;span class=&quot;comment&quot;&gt;% See also:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%     sum, cumsum, diff.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;%&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Resultado&lt;/h2&gt;&lt;p&gt;Escribiendo el texto de ayuda de esta manera, obtendremos ayuda completa que nos permitirar usar la funci&amp;oacute;n f&amp;aacute;cilmente.&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;help &lt;span class=&quot;string&quot;&gt;add&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class=&quot;codeoutput&quot;&gt;  ADD  Suma dos n&amp;uacute;meros.&lt;br /&gt; &lt;br /&gt;  Descripci&amp;oacute;n:&lt;br /&gt;      Suma dos n&amp;uacute;meros usando la suma de los n&amp;uacute;meros reales. Esta suma,&lt;br /&gt;      junto con los n&amp;uacute;meros reales, cumplen con los cuatro axiomas de&lt;br /&gt;      grupo: cerradura, asociatividad, existencia de elemento neutro y&lt;br /&gt;      existencia de elementos inversos. Adem&amp;aacute;s, la suma es conmutativa, por&lt;br /&gt;      lo que los reales con esta suma son un grupo abeliano.&lt;br /&gt; &lt;br /&gt;  Autor:&lt;br /&gt;      Evaristo Rojas &amp;lt;evaristo.rojas@islas.org.mx&amp;gt;&lt;br /&gt; &lt;br /&gt;  Referencias:&lt;br /&gt;      - &lt;a href=&quot;http://es.wikipedia.org/wiki/Grupo_abeliano&quot;&gt;Grupo abeliano&lt;/a&gt;&lt;br /&gt;      - &lt;a href=&quot;http://es.wikipedia.org/wiki/Suma&quot;&gt;Suma&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;  Sintaxis:&lt;br /&gt;      Y = add(A) suma A a s&amp;iacute; mismo.&lt;br /&gt;      Y = add(A,B) suma A mas B.&lt;br /&gt; &lt;br /&gt;  Entrada:&lt;br /&gt;      A  (double)  N&amp;uacute;mero real que ser&amp;aacute; sumado.&lt;br /&gt;      B  (double)  N&amp;uacute;mero real que ser&amp;aacute; sumado.&lt;br /&gt; &lt;br /&gt;  Salida:&lt;br /&gt;      Y  (double)  Total de la suma.&lt;br /&gt; &lt;br /&gt;  Ejemplos:&lt;br /&gt;      Y = add(1); % devuelve Y = 2&lt;br /&gt;      Y = add(2,3); % devuelve Y = 5&lt;br /&gt;      Y = add(1,2,3); % devuelve Y = NaN &lt;br /&gt; &lt;br /&gt;  See also:&lt;br /&gt;      &lt;a href=&quot;http://www.mathworks.com/help/matlab/ref/sum.html&quot;&gt;sum&lt;/a&gt;, &lt;a href=&quot;http://www.mathworks.com/help/matlab/ref/cumsum.html&quot;&gt;cumsum&lt;/a&gt;, &lt;a href=&quot;http://www.mathworks.com/help/matlab/ref/diff.html&quot;&gt;diff&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Referencias&lt;/h2&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://sites.google.com/site/matlabstyleguidelines/documentation/help-block&quot;&gt;MATLAB Programming Style Guide&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.mathworks.com/help/matlab/matlab_prog/add-help-for-your-program.html&quot;&gt;Add Help for Your Program&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p class=&quot;footer&quot;&gt;&lt;br&gt;&lt;a href=&quot;https://bitbucket.org/evaristor/blog/src/default/Published/m/p_add.m&quot;&gt;Código fuente de esta entrada&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2857330337650165723/posts/default/6842238182296012979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2857330337650165723/posts/default/6842238182296012979'/><link rel='alternate' type='text/html' href='http://evaristor.blogspot.com/2015/05/guia-de-estilo-para-matlab-documentacion.html' title='Guía de estilo para MATLAB: Documentación'/><author><name>Evaristo Rojas</name><uri>https://plus.google.com/112278723014140883504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-vZLQ2VcmLNA/AAAAAAAAAAI/AAAAAAAAMs0/T9p51DLrIjY/s512-c/photo.jpg'/></author><gd:extendedProperty name="commentSource" value="1"/><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD"/></entry><entry><id>tag:blogger.com,1999:blog-2857330337650165723.post-9023628725135329222</id><published>2015-03-07T15:00:00.000-08:00</published><updated>2015-11-13T09:01:47.172-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MATLAB"/><title type='text'>Cómo guardar los datos y metadatos en una misma estructura de MATLAB</title><content type='html'>&lt;div class=&quot;content&quot;&gt;&lt;!--introduction--&gt;&lt;p&gt;Cuando proceso datos en MATLAB uso estructuras para manejar los datos y metadatos. El uso de estructuras hace engorroso el acceso a los datos pero me facilita el manejo de los metadatos porque me permite tenerlos en la misma variable. Para cada variable creo una estructura con el campo &lt;tt&gt;data&lt;/tt&gt; donde almaceno el valor de la variable; el resto de los campos de la estructura contienen los metadatos de la variable.&lt;/p&gt;&lt;!--/introduction--&gt;&lt;h2&gt;Contents&lt;/h2&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#1&quot;&gt;Variables individuales&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#2&quot;&gt;Atributos globales&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h2&gt;Variables individuales&lt;a name=&quot;1&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Supongamos que queremos graficar una serie de tiempo de la marea. Usaremos las estructuras &lt;tt&gt;Tiempo&lt;/tt&gt; y &lt;tt&gt;Altura&lt;/tt&gt;.&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;&lt;span class=&quot;comment&quot;&gt;% Inicializar&lt;/span&gt;&lt;br /&gt;clear, close &lt;span class=&quot;string&quot;&gt;all&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;% Se define la variable independiente&lt;/span&gt;&lt;br /&gt;Tiempo.data = linspace(0,24);&lt;br /&gt;Tiempo.units = &lt;span class=&quot;string&quot;&gt;&#39;hr&#39;&lt;/span&gt;;&lt;br /&gt;Tiempo.long_name = &lt;span class=&quot;string&quot;&gt;&#39;Tiempo&#39;&lt;/span&gt;;&lt;br /&gt;Tiempo.standard_name = &lt;span class=&quot;string&quot;&gt;&#39;time&#39;&lt;/span&gt;;&lt;br /&gt;Tiempo.axis = &lt;span class=&quot;string&quot;&gt;&#39;T&#39;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;% Se define la variable dependiente&lt;/span&gt;&lt;br /&gt;Altura.data = sin(Tiempo.data/24*2*pi);&lt;br /&gt;Altura.units = &lt;span class=&quot;string&quot;&gt;&#39;m&#39;&lt;/span&gt;;&lt;br /&gt;Altura.long_name = &lt;span class=&quot;string&quot;&gt;&#39;Altura del Nivel del Mar&#39;&lt;/span&gt;;&lt;br /&gt;Altura.standard_name = &lt;span class=&quot;string&quot;&gt;&#39;sea_surface_height&#39;&lt;/span&gt;;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Atributos globales&lt;a name=&quot;2&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Conviene incluir las estructuras de ambas variables en una estructura que contenga los atributos globales de la serie de tiempo.&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;&lt;span class=&quot;comment&quot;&gt;% Incluir ambas variables&lt;/span&gt;&lt;br /&gt;Marea.Tiempo=Tiempo;&lt;br /&gt;Marea.Altura=Altura;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;% Definir atributos globales&lt;/span&gt;&lt;br /&gt;Marea.Metadata.title = &lt;span class=&quot;string&quot;&gt;&#39;Serie de tiempo de la marea&#39;&lt;/span&gt;;&lt;br /&gt;Marea.Metadata.institution = &lt;span class=&quot;string&quot;&gt;&#39;GECI&#39;&lt;/span&gt;;&lt;br /&gt;Marea.Metadata.source = &lt;span class=&quot;string&quot;&gt;&#39;Datos sint&amp;eacute;ticos&#39;&lt;/span&gt;;&lt;br /&gt;Marea.Metadata.history = [datestr(now,30) &lt;span class=&quot;string&quot;&gt;&#39; Versi&amp;oacute;n inicial&#39;&lt;/span&gt;];&lt;br /&gt;Marea.Metadata.references = &lt;span class=&quot;string&quot;&gt;&#39;http://evaristor.blogspot.com/search/label/MATLAB&#39;&lt;/span&gt;;&lt;br /&gt;Marea.Metadata.comment = &lt;span class=&quot;string&quot;&gt;&#39;Gu&amp;iacute;a de estilo para MATLAB: Metadatos&#39;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;% Graficado&lt;/span&gt;&lt;br /&gt;plot(Marea.Tiempo.data,Marea.Altura.data)&lt;br /&gt;xlabel([Marea.Tiempo.long_name &lt;span class=&quot;string&quot;&gt;&#39; (&#39;&lt;/span&gt; Marea.Tiempo.units &lt;span class=&quot;string&quot;&gt;&#39;)&#39;&lt;/span&gt;]);&lt;br /&gt;ylabel([Marea.Altura.long_name &lt;span class=&quot;string&quot;&gt;&#39; (&#39;&lt;/span&gt; Marea.Altura.units &lt;span class=&quot;string&quot;&gt;&#39;)&#39;&lt;/span&gt;]);&lt;br /&gt;title(Marea.Metadata.title)&lt;br /&gt;&lt;/pre&gt;&lt;img vspace=&quot;5&quot; hspace=&quot;5&quot; src=&quot;https://lh3.googleusercontent.com/-G0MQ4KBpdrY/VWO4Koz4-WI/AAAAAAAASkQ/KLvw4nqtcDo/s800/p_metadatos_01.png&quot; alt=&quot;&quot;&gt; &lt;p class=&quot;footer&quot;&gt;&lt;br&gt;&lt;a href=&quot;https://bitbucket.org/evaristor/blog/src/default/Published/m/p_metadatos_en_estructuras.m&quot;&gt;Código fuente de esta entrada&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2857330337650165723/posts/default/9023628725135329222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2857330337650165723/posts/default/9023628725135329222'/><link rel='alternate' type='text/html' href='http://evaristor.blogspot.com/2015/03/guia-de-estilo-para-matlab-estructuras.html' title='Cómo guardar los datos y metadatos en una misma estructura de MATLAB'/><author><name>Evaristo Rojas</name><uri>https://plus.google.com/112278723014140883504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-vZLQ2VcmLNA/AAAAAAAAAAI/AAAAAAAAMs0/T9p51DLrIjY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-G0MQ4KBpdrY/VWO4Koz4-WI/AAAAAAAASkQ/KLvw4nqtcDo/s72-c/p_metadatos_01.png" height="72" width="72"/><gd:extendedProperty name="commentSource" value="1"/><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD"/></entry><entry><id>tag:blogger.com,1999:blog-2857330337650165723.post-4091479770088865116</id><published>2013-06-19T13:32:00.000-07:00</published><updated>2016-04-14T15:35:57.465-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Matemáticas"/><category scheme="http://www.blogger.com/atom/ns#" term="Oceanografía"/><title type='text'>Definiciones sobre datos ambientales georreferenciados</title><content type='html'>&lt;p&gt;Se define &lt;em&gt;punto&lt;/em&gt;, &lt;em&gt;serie de tiempo&lt;/em&gt;, &lt;em&gt;perfil&lt;/em&gt;, &lt;em&gt;trayectoria&lt;/em&gt;, &lt;em&gt;mapa&lt;/em&gt;, &lt;em&gt;campo&lt;/em&gt; y &lt;em&gt;sección&lt;/em&gt; en el contexto de datos ambientales georreferenciados.&lt;/p&gt;&lt;p&gt;En las siguientes definiciones &lt;span class=&quot;math inline&quot;&gt;\(x,y\in\mathbb{R}\)&lt;/span&gt; son coordenadas horizontales, &lt;span class=&quot;math inline&quot;&gt;\(z\in\mathbb{R}\)&lt;/span&gt; es la posición vertical, &lt;span class=&quot;math inline&quot;&gt;\(t\in\mathbb{R}^+\)&lt;/span&gt; es el tiempo y &lt;span class=&quot;math inline&quot;&gt;\(u\)&lt;/span&gt; es el valor de la variable ambiental. El subíndice &lt;span class=&quot;math inline&quot;&gt;\(0\)&lt;/span&gt; se usa para denotar un elemento fijo, &lt;span class=&quot;math inline&quot;&gt;\(\left\{a_k\right\}_{k=1}^n\)&lt;/span&gt; representa un vector de dimensión &lt;span class=&quot;math inline&quot;&gt;\(n\)&lt;/span&gt; y &lt;span class=&quot;math inline&quot;&gt;\(A_{m,n}\)&lt;/span&gt; es una matriz &lt;span class=&quot;math inline&quot;&gt;\(m \times n\)&lt;/span&gt;.&lt;/p&gt;&lt;h2 id=&quot;definiciones&quot; class=&quot;unnumbered&quot;&gt;Definiciones&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Punto&lt;/strong&gt; es una quíntupla de la forma &lt;span class=&quot;math display&quot;&gt;\[\left(t_0,x_0,y_0,z_0,u_0\right).\]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Serie de tiempo&lt;/strong&gt; es una quíntupla de la forma &lt;span class=&quot;math display&quot;&gt;\[\left(\left\{t_k\right\}_{k=1}^n,x_0,y_0,z_0,\left\{u_k\right\}_{k=1}^n\right).\]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Perfil&lt;/strong&gt; es una quíntupla de la forma &lt;span class=&quot;math display&quot;&gt;\[\left(t_0,\left\{x_k\right\}_{k=1}^n,\left\{y_k\right\}_{k=1}^n,\left\{z_k\right\}_{k=1}^n,\left\{u_k\right\}_{k=1}^n\right).\]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Perfil vertical&lt;/strong&gt; es una quíntupla de la forma &lt;span class=&quot;math display&quot;&gt;\[\left(t_0,x_0,y_0,\left\{z_k\right\}_{k=1}^n,\left\{u_k\right\}_{k=1}^n\right).\]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Perfil horizontal&lt;/strong&gt; es una quíntupla de la forma &lt;span class=&quot;math display&quot;&gt;\[\left(t_0,\left\{x_k\right\}_{k=1}^n,\left\{y_k\right\}_{k=1}^n,z_0,\left\{u_k\right\}_{k=1}^n\right).\]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Perfil zonal&lt;/strong&gt; es una quíntupla de la forma &lt;span class=&quot;math display&quot;&gt;\[\left(t_0,\left\{x_k\right\}_{k=1}^n,y_0,z_0,\left\{u_k\right\}_{k=1}^n\right).\]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Perfil meridional&lt;/strong&gt; es una quíntupla de la forma &lt;span class=&quot;math display&quot;&gt;\[\left(t_0,x_0,\left\{y_k\right\}_{k=1}^n,z_0,\left\{u_k\right\}_{k=1}^n\right).\]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Trayectoria&lt;/strong&gt; es una quíntupla de la forma &lt;span class=&quot;math display&quot;&gt;\[\left(\left\{t_k\right\}_{k=1}^n,\left\{x_k\right\}_{k=1}^n,\left\{y_k\right\}_{k=1}^n,\left\{z_k\right\}_{k=1}^n,\left\{u_k\right\}_{k=1}^n\right).\]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Mapa&lt;/strong&gt; es una quíntupla de la forma &lt;span class=&quot;math display&quot;&gt;\[\left(t_0,\left\{x_k\right\}_{k=1}^n,\left\{y_k\right\}_{k=1}^m,z_0,U_{m,n}\right).\]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Campo&lt;/strong&gt; es una quíntupla de la forma &lt;span class=&quot;math display&quot;&gt;\[\left(\left\{t_k\right\}_{k=1}^n,\left\{x_k\right\}_{k=1}^m,\left\{y_k\right\}_{k=1}^l,z_0,U_{l,m,n}\right).\]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Sección vertical&lt;/strong&gt; es una quíntupla de la forma &lt;span class=&quot;math display&quot;&gt;\[\left(t_0,\left\{x_k\right\}_{k=1}^n,\left\{y_k\right\}_{k=1}^n,\left\{z_k\right\}_{k=1}^m,U_{m,n}\right).\]&lt;/span&gt;&lt;/p&gt; &lt;p class=&quot;footer&quot;&gt;&lt;br&gt;&lt;a href=&quot;https://bitbucket.org/evaristor/blog/src/default/Published/tex/datos-ambientales-georreferenciados.tex&quot;&gt;Código fuente de esta entrada&lt;/a&gt;&lt;br&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2857330337650165723/posts/default/4091479770088865116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2857330337650165723/posts/default/4091479770088865116'/><link rel='alternate' type='text/html' href='http://evaristor.blogspot.com/2013/06/algunas-definiciones-en-el-contexto-de.html' title='Definiciones sobre datos ambientales georreferenciados'/><author><name>Evaristo Rojas</name><uri>https://plus.google.com/112278723014140883504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-vZLQ2VcmLNA/AAAAAAAAAAI/AAAAAAAAMs0/T9p51DLrIjY/s512-c/photo.jpg'/></author><gd:extendedProperty name="commentSource" value="1"/><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD"/></entry><entry><id>tag:blogger.com,1999:blog-2857330337650165723.post-527825259681918220</id><published>2013-03-11T09:30:00.000-07:00</published><updated>2015-11-13T09:01:24.393-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="LaTeX"/><title type='text'>Plantilla LaTeX</title><content type='html'>&lt;p&gt;Ésta es la plantilla que comúnmente uso al escribir en LaTeX.&lt;/p&gt; &lt;pre class=&quot;codeinput&quot;&gt;&lt;code&gt;&lt;span class=&quot;keyword&quot;&gt;\documentclass&lt;/span&gt;[&lt;span class=&quot;untermstring&quot;&gt;12pt,letterpaper,onecolumn&lt;/span&gt;]{&lt;span class=&quot;string&quot;&gt;article&lt;/span&gt;}&lt;br /&gt;&lt;span class=&quot;keyword&quot;&gt;\usepackage&lt;/span&gt;{&lt;span class=&quot;string&quot;&gt;amsfonts,amsmath,amssymb,amsthm,dsfont&lt;/span&gt;}&lt;br /&gt;&lt;span class=&quot;keyword&quot;&gt;\usepackage&lt;/span&gt;[&lt;span class=&quot;untermstring&quot;&gt;utf8&lt;/span&gt;]{&lt;span class=&quot;string&quot;&gt;inputenc&lt;/span&gt;}&lt;br /&gt;&lt;span class=&quot;keyword&quot;&gt;\usepackage&lt;/span&gt;[&lt;span class=&quot;untermstring&quot;&gt;spanish,mexico&lt;/span&gt;]{&lt;span class=&quot;string&quot;&gt;babel&lt;/span&gt;}&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;% Incluir figuras&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;keyword&quot;&gt;\usepackage&lt;/span&gt;{&lt;span class=&quot;string&quot;&gt;graphicx&lt;/span&gt;}&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;% Formato de párrafos&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;keyword&quot;&gt;\usepackage&lt;/span&gt;{&lt;span class=&quot;string&quot;&gt;parskip&lt;/span&gt;}&lt;br /&gt;&lt;span class=&quot;string&quot;&gt;\setlength&lt;/span&gt;{&lt;span class=&quot;string&quot;&gt;\parindent&lt;/span&gt;}{20pt}&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;% Encabezado y pie de página&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;keyword&quot;&gt;\usepackage&lt;/span&gt;{&lt;span class=&quot;string&quot;&gt;fancyhdr,lastpage&lt;/span&gt;}&lt;br /&gt;&lt;span class=&quot;string&quot;&gt;\pagestyle&lt;/span&gt;{fancy}&lt;br /&gt;&lt;span class=&quot;string&quot;&gt;\fancyhf&lt;/span&gt;{}&lt;br /&gt;&lt;span class=&quot;string&quot;&gt;\lhead&lt;/span&gt;{&lt;span class=&quot;string&quot;&gt;\footnotesize&lt;/span&gt;{Instituci\&amp;#39;on}}&lt;br /&gt;&lt;span class=&quot;string&quot;&gt;\rhead&lt;/span&gt;{&lt;span class=&quot;string&quot;&gt;\footnotesize&lt;/span&gt;{Proyecto}}&lt;br /&gt;&lt;span class=&quot;string&quot;&gt;\rfoot&lt;/span&gt;{&lt;span class=&quot;string&quot;&gt;\scriptsize&lt;/span&gt;{&lt;span class=&quot;string&quot;&gt;\thepage&lt;/span&gt;\ de &lt;span class=&quot;keyword&quot;&gt;\pageref&lt;/span&gt;{&lt;span class=&quot;syscmd&quot;&gt;LastPage&lt;/span&gt;}}}&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;% Info&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;string&quot;&gt;\title&lt;/span&gt;{T\&amp;#39;itulo}&lt;br /&gt;&lt;span class=&quot;string&quot;&gt;\author&lt;/span&gt;{Evaristo Rojas}&lt;br /&gt;&lt;span class=&quot;comment&quot;&gt;% Documento&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;string&quot;&gt;\begin&lt;/span&gt;{&lt;span class=&quot;untermstring&quot;&gt;document&lt;/span&gt;}&lt;br /&gt;&lt;span class=&quot;string&quot;&gt;\maketitle&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;keyword&quot;&gt;\input&lt;/span&gt;{&lt;span class=&quot;string&quot;&gt;documento.tex&lt;/span&gt;}&lt;br /&gt;&lt;span class=&quot;string&quot;&gt;\end&lt;/span&gt;{&lt;span class=&quot;untermstring&quot;&gt;document&lt;/span&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt; &lt;p class=&quot;footer&quot;&gt;&lt;br&gt;&lt;a href=&quot;https://bitbucket.org/evaristor/blog/src/default/Published/tex/plantilla.tex&quot;&gt;Código fuente de esta entrada&lt;/a&gt;&lt;br&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2857330337650165723/posts/default/527825259681918220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2857330337650165723/posts/default/527825259681918220'/><link rel='alternate' type='text/html' href='http://evaristor.blogspot.com/2013/03/plantilla-latex.html' title='Plantilla LaTeX'/><author><name>Evaristo Rojas</name><uri>https://plus.google.com/112278723014140883504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-vZLQ2VcmLNA/AAAAAAAAAAI/AAAAAAAAMs0/T9p51DLrIjY/s512-c/photo.jpg'/></author><gd:extendedProperty name="commentSource" value="1"/><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD"/></entry><entry><id>tag:blogger.com,1999:blog-2857330337650165723.post-751856049295871825</id><published>2013-02-01T08:27:00.000-08:00</published><updated>2015-11-13T09:01:09.629-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MATLAB"/><title type='text'>Guía de estilo para MATLAB: Nomenclatura</title><content type='html'>&lt;p&gt;En la nomenclatura de variables y funciones en MATLAB uso las siguientes convenciones&lt;/p&gt;&lt;h2&gt;Contenido&lt;/h2&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#1&quot;&gt;Variables&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#2&quot;&gt;Funciones&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#3&quot;&gt;Referencia&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h2&gt;Variables&lt;a name=&quot;1&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Los nombres de las variables se escriben en espa&amp;ntilde;ol&lt;/li&gt;&lt;li&gt;Deben ser nombres descriptivos y sin abreviaturas; generalmente, ser&amp;aacute;n nombres largos.&lt;/li&gt;&lt;li&gt;La primer letra de cada palabra en may&amp;uacute;sculas, excepto en la primer palabra (&lt;a href=&quot;http://es.wikipedia.org/wiki/CamelCase&quot;&gt;lowerCamelCase&lt;/a&gt;). &lt;b&gt;Ejemplos&lt;/b&gt;: &lt;tt&gt;tiempo&lt;/tt&gt;, &lt;tt&gt;distanciaHorizontal&lt;/tt&gt;, &lt;tt&gt;perroGris&lt;/tt&gt;&lt;/li&gt;&lt;li&gt;Si la variable es una estructura tambi&amp;eacute;n la primer letra de la primer palabra es may&amp;uacute;scula (&lt;a href=&quot;http://es.wikipedia.org/wiki/CamelCase&quot;&gt;UpperCamelCase&lt;/a&gt;). &lt;b&gt;Ejemplos&lt;/b&gt;: &lt;tt&gt;PerroGris.estatura&lt;/tt&gt;, &lt;tt&gt;PerroGris.nombreCompleto&lt;/tt&gt;, &lt;tt&gt;PerroGris.ComidaFavorita.desayuno&lt;/tt&gt;&lt;/li&gt;&lt;li&gt;Si la variable representa el n&amp;uacute;mero total de elementos de un conjunto se usa el prefijo &lt;tt&gt;n&lt;/tt&gt;. &lt;b&gt;Ejemplos&lt;/b&gt;: &lt;tt&gt;nArchivos&lt;/tt&gt;, &lt;tt&gt;nPerros&lt;/tt&gt;&lt;/li&gt;&lt;li&gt;Si la variable se usa para iterar se utiliza el prefijo &lt;tt&gt;i&lt;/tt&gt;. &lt;b&gt;Ejemplo&lt;/b&gt;: &lt;tt&gt;for iPerro = 1:nPerros, ... , end&lt;/tt&gt;&lt;/li&gt;&lt;li&gt;Para variables l&amp;oacute;gicas se usa el prefijo &lt;tt&gt;es&lt;/tt&gt;. &lt;b&gt;Ejemplos&lt;/b&gt;: &lt;tt&gt;esPerro&lt;/tt&gt;, &lt;tt&gt;esGato&lt;/tt&gt;&lt;/li&gt;&lt;li&gt;Si la variable es el &amp;iacute;ndice de un arreglo se usa el prefijo &lt;tt&gt;ind&lt;/tt&gt;. &lt;b&gt;Ejemplo&lt;/b&gt;: &lt;tt&gt;indPerro = find(esPerro)&lt;/tt&gt;&lt;/li&gt;&lt;li&gt;Se indican la unidades de las variables con un sufijo separado del nombre de la variable por un guion bajo. &lt;b&gt;Ejemplos&lt;/b&gt;: &lt;tt&gt;distancia_m&lt;/tt&gt;, &lt;tt&gt;peso_kg&lt;/tt&gt;, &lt;tt&gt;tiempo_s&lt;/tt&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h2&gt;Funciones&lt;a name=&quot;2&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Los nombres de las funciones se escriben en ingl&amp;eacute;s&lt;/li&gt;&lt;li&gt;El nombre debe estar compuesto por un verbo seguido de un objeto. &lt;b&gt;Ejemplos&lt;/b&gt;: &lt;tt&gt;processData()&lt;/tt&gt;, &lt;tt&gt;petDog()&lt;/tt&gt;. Si la funci&amp;oacute;n realiza tantas tareas que no sabes cual verbo escoger entonces tu funci&amp;oacute;n es incorrecta; cada funci&amp;oacute;n debe realizar una &amp;uacute;nica acci&amp;oacute;n y la debe hacer bien.&lt;/li&gt;&lt;li&gt;Si la funci&amp;oacute;n cambia el formato del argumento de entrada se usa la notaci&amp;oacute;n &lt;tt&gt;input2output&lt;/tt&gt;. &lt;b&gt;Ejemplos&lt;/b&gt;: &lt;tt&gt;jpg2bmp()&lt;/tt&gt;, &lt;tt&gt;txt2pdf()&lt;/tt&gt;, &lt;tt&gt;lbs2kg()&lt;/tt&gt;&lt;/li&gt;&lt;li&gt;Las funciones que calculan un s&amp;oacute;lo dato de salida se pueden nombrar como ese dato (para evitar tener demasiadas funciones con el prefijo &lt;tt&gt;compute&lt;/tt&gt;). &lt;b&gt;Ejemplos&lt;/b&gt;: &lt;tt&gt;promedio = mean(datos)&lt;/tt&gt;, &lt;tt&gt;cuadrado = square(numero)&lt;/tt&gt;&lt;/li&gt;&lt;li&gt;Si la funci&amp;oacute;n devuelve valores l&amp;oacute;gicos se usa el prefijo &lt;tt&gt;is&lt;/tt&gt;. &lt;b&gt;Ejemplos&lt;/b&gt;: &lt;tt&gt;esPerro = isDog(perroGris)&lt;/tt&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h2&gt;Referencia&lt;a name=&quot;3&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.ee.columbia.edu/~marios/matlab/MatlabStyle1p5.pdf&quot;&gt;MATLAB Programming Style Guidelines&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p class=&quot;footer&quot;&gt;&lt;br&gt;&lt;a href=&quot;https://bitbucket.org/evaristor/blog/src/default/Published/m/p_nomenclatura.m&quot;&gt;Código fuente de esta entrada&lt;/a&gt;&lt;br&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2857330337650165723/posts/default/751856049295871825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2857330337650165723/posts/default/751856049295871825'/><link rel='alternate' type='text/html' href='http://evaristor.blogspot.com/2013/02/guia-de-estilo-para-matlab.html' title='Guía de estilo para MATLAB: Nomenclatura'/><author><name>Evaristo Rojas</name><uri>https://plus.google.com/112278723014140883504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-vZLQ2VcmLNA/AAAAAAAAAAI/AAAAAAAAMs0/T9p51DLrIjY/s512-c/photo.jpg'/></author><gd:extendedProperty name="commentSource" value="1"/><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD"/></entry><entry><id>tag:blogger.com,1999:blog-2857330337650165723.post-7961838423016983979</id><published>2011-03-04T11:21:00.000-08:00</published><updated>2015-11-13T09:00:47.455-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MATLAB"/><title type='text'>Sumar un vector renglón a una matriz en MATLAB</title><content type='html'>&lt;div class=&quot;content&quot;&gt;&lt;p&gt;Supongamos que tenemos una matriz &lt;i&gt;A&lt;/i&gt; con &lt;i&gt;m&lt;/i&gt; renglones y &lt;i&gt;n&lt;/i&gt; columnas y un vector &lt;i&gt;b&lt;/i&gt; con &lt;i&gt;n&lt;/i&gt; columnas. Queremos sumarle a cada columna de &lt;i&gt;A&lt;/i&gt; el correspondiente elemento de &lt;i&gt;b&lt;/i&gt;. Tal vez nuestro primer impulso es intentar &lt;tt&gt;A+b&lt;/tt&gt; pero MATLAB nos dir&amp;aacute; que &lt;i&gt;&lt;tt&gt;Matrix dimensions must agree&lt;/tt&gt;&lt;/i&gt;. Entonces se nos antojar&amp;aacute; un &lt;tt&gt;for&lt;/tt&gt; de &lt;tt&gt;1&lt;/tt&gt; a &lt;tt&gt;n&lt;/tt&gt;,  pero no debemos caer en la tentaci&amp;oacute;n. Una mejor opci&amp;oacute;n es usar &lt;b&gt;&lt;tt&gt;repmat&lt;/tt&gt;&lt;/b&gt;.&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;m = 10; &lt;span class=&quot;comment&quot;&gt;% Diez renglones&lt;/span&gt;&lt;br /&gt;n = 5; &lt;span class=&quot;comment&quot;&gt;% Cinco columnas&lt;/span&gt;&lt;br /&gt;A = randi(9,m,n) &lt;span class=&quot;comment&quot;&gt;% Matriz con n&amp;uacute;meros al azar del 1 al 9&lt;/span&gt;&lt;br /&gt;b = randi(99,1,n) &lt;span class=&quot;comment&quot;&gt;% Vector rengl&amp;oacute;n con n&amp;uacute;meros al azar del 1 al 99&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class=&quot;codeoutput&quot;&gt;&lt;br /&gt;A =&lt;br /&gt;&lt;br /&gt;     8     2     6     7     4&lt;br /&gt;     9     9     1     1     4&lt;br /&gt;     2     9     8     3     7&lt;br /&gt;     9     5     9     1     8&lt;br /&gt;     6     8     7     1     2&lt;br /&gt;     1     2     7     8     5&lt;br /&gt;     3     4     7     7     5&lt;br /&gt;     5     9     4     3     6&lt;br /&gt;     9     8     6     9     7&lt;br /&gt;     9     9     2     1     7&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;b =&lt;br /&gt;&lt;br /&gt;    28    68    65    17    12&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;Usando &lt;tt&gt;repmat&lt;/tt&gt; podemos crear una nueva matriz &lt;i&gt;B&lt;/i&gt; donde cada rengl&amp;oacute;n sea el vector &lt;i&gt;b&lt;/i&gt;.&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;B = repmat(b,m,1) &lt;span class=&quot;comment&quot;&gt;% Creamos una matriz C&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class=&quot;codeoutput&quot;&gt;&lt;br /&gt;B =&lt;br /&gt;&lt;br /&gt;    28    68    65    17    12&lt;br /&gt;    28    68    65    17    12&lt;br /&gt;    28    68    65    17    12&lt;br /&gt;    28    68    65    17    12&lt;br /&gt;    28    68    65    17    12&lt;br /&gt;    28    68    65    17    12&lt;br /&gt;    28    68    65    17    12&lt;br /&gt;    28    68    65    17    12&lt;br /&gt;    28    68    65    17    12&lt;br /&gt;    28    68    65    17    12&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;y ahora s&amp;iacute; podemos sumar&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;suma = A+B&lt;br /&gt;&lt;/pre&gt;&lt;pre class=&quot;codeoutput&quot;&gt;&lt;br /&gt;suma =&lt;br /&gt;&lt;br /&gt;    36    70    71    24    16&lt;br /&gt;    37    77    66    18    16&lt;br /&gt;    30    77    73    20    19&lt;br /&gt;    37    73    74    18    20&lt;br /&gt;    34    76    72    18    14&lt;br /&gt;    29    70    72    25    17&lt;br /&gt;    31    72    72    24    17&lt;br /&gt;    33    77    69    20    18&lt;br /&gt;    37    76    71    26    19&lt;br /&gt;    37    77    67    18    19&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p class=&quot;footer&quot;&gt;&lt;br&gt;&lt;a href=&quot;https://bitbucket.org/evaristor/blog/src/default/Published/m/p_suma.m&quot;&gt;Código fuente de esta entrada&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2857330337650165723/posts/default/7961838423016983979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2857330337650165723/posts/default/7961838423016983979'/><link rel='alternate' type='text/html' href='http://evaristor.blogspot.com/2011/03/sumar-un-vector-una-matriz-en-matlab.html' title='Sumar un vector renglón a una matriz en MATLAB'/><author><name>Evaristo Rojas</name><uri>https://plus.google.com/112278723014140883504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-vZLQ2VcmLNA/AAAAAAAAAAI/AAAAAAAAMs0/T9p51DLrIjY/s512-c/photo.jpg'/></author><gd:extendedProperty name="commentSource" value="1"/><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD"/></entry><entry><id>tag:blogger.com,1999:blog-2857330337650165723.post-6236075963010090292</id><published>2008-06-29T06:00:00.000-07:00</published><updated>2015-11-13T08:59:53.188-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MATLAB"/><title type='text'>Ajustar una linea recta usando algoritmos genéticos en MATLAB</title><content type='html'>&lt;div class=&quot;content&quot;&gt;&lt;!--introduction--&gt;&lt;p&gt;Encuentra los par&amp;aacute;metros $m$ y $b$ de la ecuaci&amp;oacute;n de la linea recta $y=mx+b$ que mejor se ajusta a los datos $\{(x_i,y_i)\}_{i=1}^{n}$ mediante un sencillo Algoritmo Gen&amp;eacute;tico (AG). Se compara el resultado obtenido con AG contra el obtenido con M&amp;iacute;nimos Cuadrados.&lt;/p&gt;&lt;!--/introduction--&gt;&lt;h2&gt;Contenido&lt;/h2&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#1&quot;&gt;Definici&amp;oacute;n del problema&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#2&quot;&gt;Par&amp;aacute;metros iniciales&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#3&quot;&gt;Poblaci&amp;oacute;n inicial&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#4&quot;&gt;Iteraciones&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#5&quot;&gt;Orden aleatorio de parejas&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#6&quot;&gt;Cruza&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#7&quot;&gt;Mutacion&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#8&quot;&gt;C&amp;aacute;lculo de la aptitud (o viabilidad)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#9&quot;&gt;Seleccion&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#11&quot;&gt;Resultados&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h2&gt;Definici&amp;oacute;n del problema&lt;a name=&quot;1&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Se genera un conjunto de datos sint&amp;eacute;ticos $\{(x_i,y_i)\}_{i=1}^{n}$ donde la variable dependiente $y$ es un vector de n&amp;uacute;meros aleatorios en el intervalo de &lt;tt&gt;0&lt;/tt&gt; a &lt;tt&gt;1&lt;/tt&gt; por lo que se espera que la mejor soluci&amp;oacute;n sea cercana a $m=0$, $b=0.5$&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;x=linspace(1,100); &lt;span class=&quot;comment&quot;&gt;% dominio de 1 a 100&lt;/span&gt;&lt;br /&gt;y=rand(1,100);     &lt;span class=&quot;comment&quot;&gt;% n&amp;uacute;meros aleatorios en el intervalo de 0 a 1&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Par&amp;aacute;metros iniciales&lt;a name=&quot;2&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Se configua el Algoritmo definiendo par&amp;aacute;metros an&amp;aacute;logos en la Gen&amp;eacute;tica&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;generaciones = 800; &lt;span class=&quot;comment&quot;&gt;% iteraciones del algoritmo&lt;/span&gt;&lt;br /&gt;n = 200;            &lt;span class=&quot;comment&quot;&gt;% tama&amp;ntilde;o de la poblaci&amp;oacute;n de soluciones&lt;/span&gt;&lt;br /&gt;probabilidad = 0.6; &lt;span class=&quot;comment&quot;&gt;% probabilidad de que cada gen mute&lt;/span&gt;&lt;br /&gt;mutacion = [1 1];   &lt;span class=&quot;comment&quot;&gt;% m&amp;aacute;ximo valor que puede mutar&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Poblaci&amp;oacute;n inicial&lt;a name=&quot;3&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Se genera aleatoriamente una poblaci&amp;oacute;n inicial de posibles soluciones. La primer columna representa el gen que define la pendiente $m$ de la recta. La segunda columna representa el gen que define la ordenada al origen $b$. Cada uno de los $n$ individuos (renglones) representa una posible soluci&amp;oacute;n.&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;poblacion = rand(n,2);&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Iteraciones&lt;a name=&quot;4&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;La poblaci&amp;oacute;n de soluciones evoluciona mediante la cruza y mutaci&amp;oacute;n&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;s = n;&lt;br /&gt;hw = waitbar(0,&lt;span class=&quot;string&quot;&gt;&#39;Evolucionando...&#39;&lt;/span&gt;);&lt;br /&gt;&lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt; i = 1:generaciones&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Orden aleatorio de parejas&lt;a name=&quot;5&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre class=&quot;codeinput&quot;&gt;    poblacion(:,3) = rand(s,1);&lt;br /&gt;    poblacion = sortrows(poblacion,+3);&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Cruza&lt;a name=&quot;6&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre class=&quot;codeinput&quot;&gt;    poblacion=[poblacion; poblacion(1:2:end-1,1) poblacion(2:2:end,2) zeros(fix(s/2),1); poblacion(2:2:end,1) poblacion(1:2:end-1,2) zeros(fix(s/2),1)];&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Mutacion&lt;a name=&quot;7&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre class=&quot;codeinput&quot;&gt;    s = size(poblacion,1);&lt;br /&gt;    poblacion=[poblacion; poblacion+[(rand(s,3)&amp;lt;probabilidad).*(rand(s,3)*2-1).*repmat([mutacion 0],s,1)]];&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;C&amp;aacute;lculo de la aptitud (o viabilidad)&lt;a name=&quot;8&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;La tercer columna de poblacion representa la aptitud (viabilidad) de la soluci&amp;oacute;n, menor es mejor.&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;    s = size(poblacion,1);&lt;br /&gt;    m = repmat(poblacion(:,1),1,100);&lt;br /&gt;    b = repmat(poblacion(:,2),1,100);&lt;br /&gt;    X = repmat(x,s,1);&lt;br /&gt;    Y = repmat(y,s,1);&lt;br /&gt;    Y2=m.*X+b;&lt;br /&gt;    poblacion(:,3)=sum(abs(Y-Y2),2);&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Seleccion&lt;a name=&quot;9&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre class=&quot;codeinput&quot;&gt;    poblacion = unique(poblacion,&lt;span class=&quot;string&quot;&gt;&#39;rows&#39;&lt;/span&gt;);&lt;br /&gt;    poblacion = sortrows(poblacion,+3);&lt;br /&gt;    s = min([size(poblacion,1),n]);&lt;br /&gt;    poblacion = poblacion(1:s,:);&lt;br /&gt;    waitbar(i/generaciones,hw)&lt;br /&gt;&lt;/pre&gt;&lt;pre class=&quot;codeinput&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;end&lt;/span&gt;&lt;br /&gt;close(hw)&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Resultados&lt;a name=&quot;11&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Se compara el resultado obtenido con AG contra el obtenido con m&amp;iacute;nimos cuadrados&lt;/p&gt;&lt;pre class=&quot;codeinput&quot;&gt;error_ag = poblacion(1,3);&lt;br /&gt;p = polyfit(x,y,1);&lt;br /&gt;y3 = polyval(p,x);&lt;br /&gt;error_mc = sum(abs(y3-y));&lt;br /&gt;plot(x,y,&lt;span class=&quot;string&quot;&gt;&#39;.&#39;&lt;/span&gt;,x,polyval(poblacion(1,1:2),x),x,y3,&lt;span class=&quot;string&quot;&gt;&#39;:&#39;&lt;/span&gt;)&lt;br /&gt;axis([0 100 -0.5 1.5])&lt;br /&gt;legend(&lt;span class=&quot;string&quot;&gt;&#39;Datos Sint&amp;eacute;ticos&#39;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&#39;Algoritmos Gen&amp;eacute;ticos (AG)&#39;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&#39;M&amp;iacute;nimos Cuadrados (MC)&#39;&lt;/span&gt;)&lt;br /&gt;text(1,-.167,[&lt;span class=&quot;string&quot;&gt;&#39;AG: Error = &#39;&lt;/span&gt; num2str(error_ag) &lt;span class=&quot;string&quot;&gt;&#39;, m = &#39;&lt;/span&gt; num2str(poblacion(1,1)) &lt;span class=&quot;string&quot;&gt;&#39;, b = &#39;&lt;/span&gt; num2str(poblacion(1,2))])&lt;br /&gt;text(1,-.333,[&lt;span class=&quot;string&quot;&gt;&#39;MC: Error = &#39;&lt;/span&gt; num2str(error_mc) &lt;span class=&quot;string&quot;&gt;&#39;, m = &#39;&lt;/span&gt; num2str(p(1)) &lt;span class=&quot;string&quot;&gt;&#39;, b = &#39;&lt;/span&gt; num2str(p(2))])&lt;br /&gt;&lt;/pre&gt;&lt;img vspace=&quot;5&quot; hspace=&quot;5&quot; src=&quot;https://lh3.googleusercontent.com/-0HFbOgrxjKk/VcDjTdua2VI/AAAAAAAATEk/PMRNd4qmYQ8/s800-Ic42/p_ag_01.png&quot; alt=&quot;&quot;&gt; &lt;p class=&quot;footer&quot;&gt;&lt;br&gt;&lt;a href=&quot;https://bitbucket.org/evaristor/blog/src/default/Published/m/p_ag.m&quot;&gt;Código fuente de esta entrada&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2857330337650165723/posts/default/6236075963010090292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2857330337650165723/posts/default/6236075963010090292'/><link rel='alternate' type='text/html' href='http://evaristor.blogspot.com/2008/06/ajustar-una-linea-recta-usando.html' title='Ajustar una linea recta usando algoritmos genéticos en MATLAB'/><author><name>Evaristo Rojas</name><uri>https://plus.google.com/112278723014140883504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-vZLQ2VcmLNA/AAAAAAAAAAI/AAAAAAAAMs0/T9p51DLrIjY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-0HFbOgrxjKk/VcDjTdua2VI/AAAAAAAATEk/PMRNd4qmYQ8/s72-c/p_ag_01.png" height="72" width="72"/><gd:extendedProperty name="commentSource" value="1"/><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD"/></entry></feed>