Matlab - Problema para introducir datos en matriz mediante bucle for

 
Vista:

Problema para introducir datos en matriz mediante bucle for

Publicado por Carlos (60 intervenciones) el 04/05/2011 12:20:21
Buenas a todos.

Necesito crear una tabla de valores que se muestren por pantalla en forma de tabla 10*6.
He hecho esto:

for k=2:6 %ya tengo la primera fila completada en otra parte del código
finaltable(k,:)=[U I cosphi S ... (las 10 variables)]
end

No sé como hacerlo. Me da este error en esta parte de código:
??? Assignment has more non-singleton rhs dimensions than non-singleton
subscripts

Y no se interpretarlo :/

Help...

La forma de entrar los datos debe de ser así, introduciéndolos de 10 en 10 de forma manual hasta completar las 6 columnas.
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

Problema para introducir datos en matriz mediante bucle for

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 04/05/2011 15:47:09
HOLA
"Necesito crear una tabla de valores que se muestren por pantalla en forma de tabla 10*6. "
Significa que quieres crear una matriz finaltable de 10 filas y 6 columnas es decir 10x6

"La forma de entrar los datos debe de ser así, introduciéndolos de 10 en 10 de forma manual hasta completar las 6 columnas.".
Significa que esta matriz finaltable que quieres crear, se debe crear introduciendo los datos desde el teclado por columnas, es decir que en cada iteracion se introduce una columna de la matriz finaltable.
Si es asi: Esta es la respuesta.

EN EL PROGRAMA.
La matriz finaltable1 de 10x6 se genera automaticamente en el programa, pero en cada iteración se crea una columna de 10x1 de la matriz finaltable1

La matriz finaltable2 de 10x6 se crea introduciendos datos desde el tecaldo, en cada iteración se crea una columna de 10x1 de la matriz finaltable2

Tambien te envio la ejecucion:

%========================================
clear,
finaltable1=zeros(10,6); % matriz de 10 filas y 6 columnas
[n1,m1]=size(finaltable1);
for j=1:m1
finaltable1(:,j)=[sin(rand);rand;cos(rand);2*rand;3*rand;8*rand;rand;j;2*j;pi];
end
display(finaltable1)


finaltable2=zeros(10,6); % matriz de 10 filas y 6 columnas
[n2,m2]=size(finaltable2);
for j=1:m2
fprintf('Ingrese columna finaltable2(:,%d)=',j);
finaltable2(:,j)=input(' '); %introduciendo manualmente dsde el teclado
end
display(finaltable2
%========================================

%EJECUCION
>> matrizbuclefor
finaltable1 =
0.2795 0.6849 0.7209 0.1559 0.5503 0.1542
0.1338 0.3463 0.0672 0.4573 0.8549 0.1439
0.7742 0.9136 0.5810 0.8150 0.9994 0.8220
1.8189 0.3114 0.9952 1.8644 1.7708 0.5090
1.8326 2.4570 2.2654 2.5053 1.2232 0.9725
7.1999 4.9994 5.9392 7.1634 0.2911 3.2143
0.1934 0.7386 0.8311 0.5825 0.7461 0.4064
1.0000 2.0000 3.0000 4.0000 5.0000 6.0000
2.0000 4.0000 6.0000 8.0000 10.0000 12.0000
3.1416 3.1416 3.1416 3.1416 3.1416 3.1416

Ingrese columna finaltable2(:,1)= [sin(rand);rand;cos(rand);2*rand;3*rand;8*rand;rand;j;2*j;rand]
Ingrese columna finaltable2(:,2)= [sin(rand);rand;cos(rand);2*rand;3*rand;8*rand;rand;j;3*j;5*rand]
Ingrese columna finaltable2(:,3)= [cos(rand);rand;cos(rand);rand;3*rand;8*rand;rand;j;3*j;5*rand]
Ingrese columna finaltale2(:;4)= [cos(rand);cos(rand);sin(rand);rand;3*rand;8*rand;rand;6*j;j;4*rand]
Ingrese columna finaltable2(:,5)= [sin(rand);cos(rand);sin(rand);rand;3*rand;8*rand;rand;6*j;j;4*rand]
Ingrese columna finaltale2(:,6)= [sin(1);cos(1);sin(pi);rand;rand;8*rand;rand;6*j;j;4*rand]

finaltable2 =
0.3767 0.6746 0.6735 0.8584 0.5663 0.8415
0.6098 0.6928 0.8103 0.5473 0.6546 0.5403
0.9861 0.6792 0.8488 0.6854 0.8351 0.0000
0.3762 1.6560 0.2630 0.9805 0.9295 0.2193
0.2839 0.8801 2.0417 0.7043 1.2285 0.3258
2.5855 2.4750 1.8692 4.2285 0.0027 0.7676
0.7696 0.5230 0.4564 0.0514 0.5409 0.7475
1.0000 2.0000 3.0000 24.0000 30.0000 36.0000
2.0000 6.0000 9.0000 4.0000 5.0000 6.0000
0.2341 1.6265 1.9228 3.0275 0.8309 2.9940



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

Problema para introducir datos en matriz mediante bucle for

Publicado por Carlos (60 intervenciones) el 09/05/2011 10:00:23
Hola Jose, gracias por contestar.

Parece que no lo expresé bien. Los valores que quiero poner en la matriz son valores que ya tengo calculados anteriormente.
Realmente, está todo dentro de un bucle for, y quiero que al irse calculando estos valores se vayan introduciendo en las filas de la matriz (cada fila corresponde a todos los diferentes valores que se calculan en una iteración del bucle for).

De forma que cuando termine el bucle for y quiera visualizar los resultados solo tenga que imprimir por pantalla la matriz con los resultados.

En resumen sería algo así:
-bucle for
-calculo de resultados y variables
-ntroducción de los resultados en la fila correspondiente de la matriz
end

-visualizar la tabla con todos los resultados

Hice una pregunta demasiado general, disculpas.
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

Problema para introducir datos en matriz mediante bucle for

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 09/05/2011 14:42:50
HOLA CARLOS.
La respuesta lo tienes en el programa anterior que te hice.

La matriz finaltable1 de 10x6 se genera automaticamente en el programa, pero en cada iteración se crea una columna de 10x1 de la matriz finaltable1

%========================================
clear,
finaltable1=zeros(10,6); % matriz de 10 filas y 6 columnas
[n1,m1]=size(finaltable1);
for j=1:m1
finaltable1(:,j)=[sin(rand);rand;cos(rand);2*rand;3*rand;8*rand;rand;j;2*j;pi];
end
display(finaltable1)
%==========================================

Solo es cuestion de adaptar a tu problema. ya que
[sin(rand);rand;cos(rand);2*rand;3*rand;8*rand;rand;j;2*j;pi]; podrian ser los datos obtenidos anteriormente en tu programa.


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

Problema para introducir datos en matriz mediante bucle for

Publicado por Carlos (60 intervenciones) el 10/05/2011 11:19:42
Solucionado. Gracias por la respuesta :)
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

Problema para introducir datos en matriz mediante bucle for

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 10/05/2011 14:32:02
ok. Carlos.


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

Problema para introducir datos en matriz mediante bucle for

Publicado por carlos (1 intervención) el 29/04/2015 04:43:28
Buenas noches Señor Jose una consulta como puedo crear un programa se suma o resta de matrices diferentes, pero las matrices ingresadas por teclado, gracias por su atencion
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