Matlab - duda con notacion de variable

 
Vista:

duda con notacion de variable

Publicado por Camilo García (52 intervenciones) el 25/06/2011 21:00:23
Estimados:

Junto con saludarlos tengo la siguiente duda que no e podido solucionar y llevo tiempo buscando una solución. La verdad no soy erudito en el tema de programación, pero tengo que hacer un codigo en matlab el cual me entregue variables de elementos.

por ejemplo si mal no recuerdo en basic la idea es mas o menos asi:

for i=1:3

k"&string(i)=i+3

end

en donde los resultados serian:

k1=4
k2=5
k3=6

como coloco el carácter 1,2,3 en esta sentencia???????

saludos ojala puedan ayudarme

CG
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

duda con notacion de variable

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 26/06/2011 07:46:32
hola Emilio
%===================
clear,
for i=1:3
k(i)=i+3;
end
display(k)
%===================
EJECUCION
>>strings1
k =

4 5 6

>> k(1)

ans =

4

>> k(2)

ans =

5

>> k(3)

ans =

6


Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

duda con notacion de variable, La Solución

Publicado por Dave (1094 intervenciones) el 27/06/2011 02:05:20
Hola Camilo;

La consulta que planteas se resuelve con el siguiente codigo.

clc,clear all

for k = 1:5
v = genvarname(['A',num2str(k)]);
eval([v ' = k+3'])
end


who

Espero que sea de alguna ayuda

Saludos
Dave Correa
[email protected]
http://fismatlab.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

duda con notacion de variable

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 26/06/2011 07:49:37
Hola.

Solo para la impresion.
%===============
clear,clc
for i=1:3
fprintf('k%d=%d\n',i,i+3)
end
%================

EJECUCION:
>> strings2
k1=4
k2=5
k3=6



Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

duda con notacion de variable

Publicado por camilo (52 intervenciones) el 26/06/2011 09:00:35
Estimado Jose:

De antemano agradezco la deferencia en responder mi pregunta.

Según entiendo k seria un vector de longitud definida por el numero de veces que se repita la operación ( 3 en el ejemplo que coloque).

el problema es que estoy trabajando con "hipermatrices" (e leido que tambien las nombran como array), entonces no se si puedo guardar una hipermatriz k1 y otra hipermatriz k2. Disculpa si soy un poco enrredado para explicar lo que nesesito, pero no soy erudito en el tema.

debe existir una forma de generar eso, pero e probado y no me funciona

saludos

CG
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

duda con notacion de variable

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 26/06/2011 23:04:47
hola.
%=================================
clear
%a=5x8x2
for i=1:5
for j=1:10
for k=1:2
a(i,j,k)=8;
end
end
end
display(a)
%=======================

>>strings3
a(:,:,1) =

8 8 8 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 8 8


a(:,:,2) =

8 8 8 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 8 8

Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

duda con notacion de variable

Publicado por Dave (1094 intervenciones) el 27/06/2011 02:13:07
Camilo;

Al parecer estas tratando de utilizar las estructuras (struct), éste tipo de arreglos te permiten guadar una variedad de información en cada uno de sus elementos que la estructuras.

Te sugiero que revises sobre estructuras (struct) y celdas (cell) en la documentación de Matlab.

Espero que sea de alguna ayuda

Saludos
Dave Correa
[email protected]
http://fismatlab.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

duda con notacion de variable

Publicado por Camilo García (52 intervenciones) el 27/06/2011 00:46:11
saludos:

Tengo una consulta con respecto a las operaciones que puedo realizar con las hipermatrices, pues al parecer no se pueden realizar operaciones matriciales con las hipermatrices.

al parecer deberia pasar las hipermatrices a matrices para luego poder realizar operaciones.

atte

CG
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

duda con notacion de variable

Publicado por Camilo García (52 intervenciones) el 27/06/2011 00:50:32
cito textual de un manual de matlab:

"Las funciones matriciales propias del Álgebra Lineal (det(), inv(), etc.) no se pueden aplicar a
hipermatrices. Para poderlas aplicar hay que extraer primero las matrices correspondientes
(por ejemplo, con el operador dos puntos (:))."


alguien me puede explicar cuando hablan de extraer primero las matrices correspondientes con el operador dos puntos(:)???????

saludos y de antemano gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

duda con notacion de variable

Publicado por Dave (1094 intervenciones) el 27/06/2011 02:17:29
Camilo;

Asumiendo que te refieres como hipermatrices a las celdas o estructuras, te comento que si se pueden realizar todo tipo de operaciones matematicas o evaluación de funciones, lo unico que tendrías que hacer es extraer la información de cada uno de los elementos de la hipermatriz y almacenarla en una variable temporal, realizar la operación matematica y luego volver a guardarla en la hipermatriz.

Espero que sea de alguna ayuda

Saludos
Dave Correa
[email protected]
http://fismatlab.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

duda con notacion de variable

Publicado por Camilo García (52 intervenciones) el 27/06/2011 02:25:42
dave:

tienes toda la razón, solamente hay que ser especifico con la submatriz con la que se quiere trabajar.

saludos y gracias por el aporte

CG
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

duda con notacion de variable

Publicado por Camilo García (52 intervenciones) el 27/06/2011 20:28:32
Estimados:

Junto con saludarlos, tengo la siguiente duda:

la funcion (u operador) genvarname, se puede utilizar con hipermatrices?

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

duda con notacion de variable

Publicado por Dave (1094 intervenciones) el 27/06/2011 23:07:57
Camilo;

No debería haber problemas en utilizar gervarname, ya que éste será utilizado unicamente para nombrar a la variable, independientemente de lo que desees almacenar.

Saludos
Dave Correa
[email protected]
http://fismatlab.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

duda con notacion de variable

Publicado por Camilo García (52 intervenciones) el 27/06/2011 23:11:45
E intentado realizar operaciones pero al parecer las estoy escribiendo mal o algo por el estilo.

for i=1:nod
fprintf ('\n Elemento %d:',i);

% Matriz a de compatibilidad geometrica
v = genvarname('a',num2str(i));
eval([v ' = [-sin(datos(i,2)*pi/180)/datos(i,1),cos(datos(i,2)*pi/180)/datos(i,1)]']);
end


me hace problemas de notacion al parecer eso.


saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

duda con notacion de variable

Publicado por Dave (1094 intervenciones) el 28/06/2011 00:08:50
Hola Camilo;

olvidaste colocar los corchetes en "v = genvarname(['a',num2str(i)]) ", allí coloco un ejemplo con una matriz de datos aleatorios.

Espero que sea de alguna ayuda.

Saludos
Dave Correa
[email protected]
http://fismatlab.blogspot.com

-----------------------


datos=rand(5,2)
for i=1:5
fprintf ('\n Elemento %d:',i);

% Matriz a de compatibilidad geometrica
v = genvarname(['a',num2str(i)]);
eval([v ' = [-sin(datos(i,2)*pi/180)/datos(i,1),cos(datos(i,2)*pi/180)/datos(i,1)]']);
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar