19/09/2019, 08:40:33 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias: LISTADO ACTUALIZADO DE CURSOS
 
 
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: crear matriz y vector en matlab  (Leído 1836 veces)
0 Usuarios y 1 Visitante están viendo este tema.
an89a
Nuevo
*

Karma: +0/-0
Desconectado Desconectado

Sexo: Femenino
Colombia Colombia

Mensajes: 2


Ver Perfil
« : 07/03/2013, 06:57:01 pm »

Hola  :cara_de_queso:
mi duda es como usando for puedo crear una matriz a partir de un vector, y un vector a partir de una matriz en matlab utilizando for
gracias
En línea
mathtruco
Moderador Global
Pleno*
*

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Chile Chile

Mensajes: 4.903

El gran profesor inspira


Ver Perfil
« Respuesta #1 : 07/03/2013, 11:04:20 pm »

Hola an89a,

 ¡bienvenida al foro!

Siempre que se pueda hay que evitar los ciclos for en matlab. La razón: se demoran mucho y matlab tiene muchas operaciones muy útiles para trabajar con matrices.

OBS: Para matlab los reales, complejos, matrices o vectores son matrices, por lo que no es necesario hacer conversiones como en otros lenguajes.

Si lo que necesitas es, por ejemplo, poner todas las columnas de la matriz [texx]A=\begin{bmatrix}{1}&{2}&{3}\\{4}&{5}&{6}\\{7}&{8}&{9}\end{bmatrix}[/texx] en un vector (o al revés) entonces puedes usar el compando reshape:

Código:
matlab:> A=[1 2 3;4 5 6;7 8 9];
matlab:> v=reshape(A,9,1)
v =

   1
   4
   7
   2
   5
   8
   3
   6
   9

matlab:> v=reshape(A,1,9)
v =

   1   4   7   2   5   8   3   6   9

matlab:> reshape(v,3,3)
ans =

   1   2   3
   4   5   6
   7   8   9




Si insistes en usar el ciclo for puedes usar una rutina de este tipo:

Código:
v=[1 2 3 4 5 6 7 8 9];

i=1;
k=1;
for i=1:3
  for j=1:3
    A(i,j)=v(k);
    k=k+1;
  end
end

o algo como

Código:
v=[1 2 3 4 5 6 7 8 9];

for k=1:3
  A(k,:)=v(3*k-2:3*k);
end
En línea
an89a
Nuevo
*

Karma: +0/-0
Desconectado Desconectado

Sexo: Femenino
Colombia Colombia

Mensajes: 2


Ver Perfil
« Respuesta #2 : 11/03/2013, 11:46:21 pm »

Muchas gracias
si es verdad lo de las funciones, lo que pasa es que en clase apenas estamos iniciando con el matlab y por eso el profesor nos dice que hagamos todo, por decirlo de alguna manera, manualmente para entender mejor como funcionan  :cara_de_queso:

este es el programa que finalmente hice
close all, clear all;
V =[0,0,0,0,0,0,0,0,0]
M = [3,8,13;20,22,28;1,4,12;];
P=length(V);
[m,n]= size(M);
Q=1;
for i=1:3
    for j=1:3
        if Q <= P
            V(Q)=M(i,j)
            Q = Q+1;
        end
    end
end

ahora mi siguiente tarea es hacer el programa de la función histrograma
En línea
Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.4 | SMF © 2006, Simple Machines LLC XHTML 1.0 válido! CSS válido!