Matlab - Crear matriz de strings

   
Vista:

Crear matriz de strings

Publicado por Juan (27 intervenciones) el 31/03/2012 23:06:50
Hola, me gustaría crear una matriz que guarde estos datos:

Inicial Primario X Y Ancho Altura Visible
A 1 10 20 30 40 on
A 2 10 20 30 40 on
A 3 10 20 30 40 on
B 1 10 30 40 off

¿Se podría hacer?

Es que he probado lo de: MATRIZ=[ A 1 10 20 30 40 on; A 2 10 20 30 40 on; ......

y me sale error.

Es que luego quiero utilizar estos valores para un GUI,me explico:

set(handles.panel, 'String', datos(1,1), 'X',datos(1,3),.....'Visible',datos(1,7))

¿Se puede hacer?
Un saludo y gracias a quien me pueda echar una mano.
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

Crear matriz de strings

Publicado por gerardo (1 intervención) el 01/04/2012 20:51:24
Hola Juan!

1
2
3
4
5
6
T=[...
     'Inicial',' Primario','   X','   Y',' Ancho',' Altura',' Visible';...
     'A      ','      1  ','  10','  20','    30','     40','      on';...
     'A      ','      1  ','  10','  20','    30','     40','      on';...
     'A      ','      1  ','  10','  20','    30','     40','      on';...
     'A      ','      1  ','  10','  20','    30','     40','      on'];


Se puede solo tienes que asegurarte que las columnas tengan igual tamaño.
y si quieres puedes mostrarla en un static text

1
set(handles.text1,'string','T')


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

Crear matriz de strings

Publicado por Juan (27 intervenciones) el 02/04/2012 01:13:43
Muchas gracias Gerardo por responder. He pensado otra cosa más fácil, en lugar de crear una matriz en matlab, ¿qué te parece si lo hago a través de un excel y luego importo los datos?

Así me evitaría lo de que todas las columnas tengan igual tamaño.
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

Crear matriz de strings

Publicado por Juan (27 intervenciones) el 02/04/2012 21:32:07
Hola, he probado la función xlsread y no me funciona. Sólo me salen los datos numéricos, pero los string me salen como NaN. ¿No es posible extaer strings de un excel?
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

Crear matriz de strings

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 02/04/2012 21:36:40
Hola Juan.
Si es posible extraer con la funcion xlsread


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
jjcc94@hotmail.com

http://matlabcaballero.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

Crear matriz de strings

Publicado por Juan (27 intervenciones) el 02/04/2012 22:11:58
Hola Jose, muchas gracias por responder. Investigaré en la ayuda o por internet, pensaba que no se podía.
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

Crear matriz de strings

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 02/04/2012 22:15:45
Hola Juan.
Tu pregunta ya sido resuelto hace rato.
Al parecer los usuarios no entran a mi blog. Hay preguntas que contesto en mi blog.
Y por no entrar en mi blog, se pierden de las apliaciones que hay en matlab, y de los problemas resueltos.

Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
jjcc94@hotmail.com

http://matlabcaballero.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

Crear matriz de strings

Publicado por Juan (27 intervenciones) el 04/04/2012 16:23:29
Muchas gracias Jose Jeremías por tu ayuda. Sin embargo, me he encontrado con un problema.

Tenemos 4 static text: A1 A2 A3 B1

Hay algunos que se deben visualizar y otros que no, de ahí la columna de Visible (es la columna número siete). Es decir, la columna siete:

datos(:,7)=
'on'
'on'
'on'
'off'

Al hacer:

for i=1:4
set(a(i),'Visible',datos(i,7))
end

Me sale error:

??? Error using ==> set
Bad property value found.
Object Name : uicontrol
Property Name : 'Visible'.

¿Qué podría hacer?
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

Crear matriz de strings

Publicado por Juan (27 intervenciones) el 04/04/2012 21:43:08
Señor Jose Jeremías, le he enviado un correo electrónico con mi GUI y explicando mejor mis dudas. Espero que no le parezca mal mi atrevimiento.

Un saludo y mis disculpas por hacerle perder el tiempo.
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

Crear matriz de strings

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 04/04/2012 23:04:02
HOla JUan.
Me enviastes tu codigo ami correo lo acabo de filtrar y lo copió al foro.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
function varargout = Curso(varargin)
clc
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @Curso_OpeningFcn, ...
                   'gui_OutputFcn',  @Curso_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
 
function Curso_OpeningFcn(hObject, ~, handles, varargin)
[num,text,datos]=xlsread('Nombres.xlsx');
handles.datos=datos;
handles.output = hObject;
guidata(hObject, handles);
 
function varargout = Curso_OutputFcn(~, ~, handles)
varargout{1} = handles.output;
 
function uipanel1_SelectionChangeFcn(hObject, ~, handles)
datos=handles.datos;
nombres=datos(:,2:2:end);
P(1)=handles.Primario1; P(2)=handles.Primario2;
P(3)=handles.Primario3; P(4)=handles.Primario4;
P(5)=handles.Primario5; P(6)=handles.Primario6;
P(7)=handles.Primario7; P(8)=handles.Primario8;
P(9)=handles.Primario9;
if hObject==handles.Inicial1
    set(handles.Panel_Primario,'Title','Clase A','Visible','on');
    for i=1:9
    set(P(i),'visible','off')
    end
    nombres1=nombres(:,1);
    k=0;
    nombres11=[];
    for i=1:size(nombres,1)
        if ischar(cell2mat(nombres1(i))) && size(cell2mat(nombres1(i)),2)>1
            k=k+1;
            nombres11{k}=nombres1(i);
        end
    end
    for i=1:size(nombres11,2)
      set(P(i),'visible','on')
    end
    for i=1:size(nombres11,2)
      set(P(i),'string',nombres11{i})
    end
 
elseif hObject==handles.Inicial2
    set(handles.Panel_Primario,'Title','Clase B','Visible','on');
     for i=1:9
    set(P(i),'visible','off')
    end
    nombres2=nombres(:,2);
    k=0;
    nombres22=[];
    for i=1:size(nombres,1)
        if ischar(cell2mat(nombres2(i))) && size(cell2mat(nombres2(i)),2)>1
            k=k+1;
            nombres22{k}=nombres2(i);
        end
    end
    for i=1:size(nombres22,2)
      set(P(i),'visible','on')
    end
    for i=1:size(nombres22,2)
      set(P(i),'string',nombres22{i})
    end
elseif hObject==handles.Inicial3
    set(handles.Panel_Primario,'Title','Clase C','Visible','on');
     for i=1:9
    set(P(i),'visible','off')
    end
    nombres3=nombres(:,3);
    k=0;
    nombres33=[];
    for i=1:size(nombres,1)
        if ischar(cell2mat(nombres3(i))) && size(cell2mat(nombres3(i)),2)>1
            k=k+1;
            nombres33{k}=nombres3(i);
        end
    end
    for i=1:size(nombres33,2)
      set(P(i),'visible','on')
    end
    for i=1:size(nombres33,2)
      set(P(i),'string',nombres33{i})
    end
 
end
 
function Panel_Primario_SelectionChangeFcn(hObject, eventdata, handles)




Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
jjcc94@hotmail.com

http://matlabcaballero.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

Crear matriz de strings

Publicado por Juan (27 intervenciones) el 05/04/2012 22:37:03
Todo perfecto, muchas gracias por su ayuda señor Jose Jeremías.
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

Crear matriz de strings

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 05/04/2012 22:39:17
Ok.
Problema resuelto.

Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
jjcc94@hotmail.com

http://matlabcaballero.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