Matlab - COMPROBACION DE UNA VARIABLE VACIA

 
Vista:
Imágen de perfil de Javier López

COMPROBACION DE UNA VARIABLE VACIA

Publicado por Javier López (16 intervenciones) el 27/12/2016 10:21:39
Hola.
Quería saber como puedo comprobar en Matlab si una variable está vacía, o sea, si ha recibido su correspondiente dato de entrada.
Me gustaría que la estructura fuese de la siguiente forma:

1
2
3
if (variable==empty)
    disp ('ERROR: No se ha introducido ningún valor de variable');
end

Gracias y un saludo.
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: 8.042
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

COMPROBACION DE UNA VARIABLE VACIA

Publicado por JOSE JEREMIAS CABALLERO (5779 intervenciones) el 27/12/2016 13:00:21
1
2
3
4
5
clear
n=input('Ingrese n: ');
if isempty(n)
    disp ('ERROR: No se ha introducido ningún valor de n');
end


1
2
3
4
5
variable_vacia
Ingrese n:
ERROR: No se ha introducido ningún valor de n
>> variable_vacia
Ingrese n: 90

Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programación 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
Imágen de perfil de Fco. JAVIER

COMPROBACION DE UNA VARIABLE VACIA

Publicado por Fco. JAVIER (16 intervenciones) el 27/12/2016 14:09:26
Muchas gracias Jose Jeremias por la ayuda.
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: 564
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

COMPROBACION DE UNA VARIABLE VACIA

Publicado por Dave (1083 intervenciones) el 27/12/2016 18:47:29
Hola Javier;

Podrías evaluar ambos casos, variable vacía o no vacía.

1
2
3
4
5
6
7
8
9
var = [];
 
if isempty(var)
 
    disp('variable vacia')
 
else
    disp('variable no vacia')
end

​Espero que sea de alguna ayuda.

Saludos
Dave Correa
correa.dave30@gmail.com
dcorrea@fismatlab.org
Servicios de Programación Matlab
http://fismatlab.org​​
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 Javier López

COMPROBACION DE UNA VARIABLE VACIA

Publicado por Javier López (16 intervenciones) el 27/12/2016 20:14:28
Muchas gracias. Lo he intentado pero no sale. Mi programa es el siguiente:

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
function [ A ] = mi_matriz(n)
 
%COMPROBAMOS SI LA VARIABLE "n" ESTA VACIA
% if isempty (n) %Con esta función no lo resuelvo
%     disp ('ERROR: No se ha introducido ningun valor de n');
% end
 
%COMPROBAMOS SI LA VARIABLE "n" NO ES POSITIVA
if n<=0
    disp ('ERROR: El valor n introducido no es positivo');
    n=5;
end
 
%COMPROBAMOS SI LA VARIABLE "n" NO ES ENTERA APROXIMAN AL SIGUIENTE ENTERO
if mod(n,1)~=0  %Aqui pregunto si el nº no es entero
    n=floor(n); %Metemos la parte entera de n en n
    n=n+1;  %Metemos en n el entero siguiente
    disp ('ERROR: El valor n introducido no es entero');
end
 
%CREACION DEL ALGORITMO
 
A=zeros(n); %Creacion matriz cuadrada de ceros de dimension n
 
for i=1:n
       for j=1:n
           if i==j
               A(i,j) = 1; %metemos un 1 en la diagonal
           end
       end
end

Lo que pregunto está al principio (todo comentado ya que me sale un mensaje de error cuando lo ejecuto)
la variable n la debo introducir manualmente, pero si no la introduzco no me sale el mensaje de "variable vacia".
Lo que no sé es si no sale el mensaje porque ni siquiera existe.
No se como abordarlo.
¿Como indicar que una variable esta vacía si ni siquiera existe?
¿Deberia crearla antes?
¿Y como la creo si precisamente para crearla ya tengo que asignarle un valor?
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: 564
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

COMPROBACION DE UNA VARIABLE VACIA

Publicado por Dave (1083 intervenciones) el 27/12/2016 20:31:52
Hola Javier;

Una cosa es que la variable no exista y otra que la variable existe y esté vacía.

Si la variable no existe, debes hacerlo de la siguiente forma.

1
2
3
4
5
>> exist('n')
 
ans =
 
     0

​Espero que sea de alguna ayuda.

Saludos
Dave Correa
correa.dave30@gmail.com
dcorrea@fismatlab.org
Servicios de Programación Matlab
http://fismatlab.org​​
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: 8.042
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

COMPROBACION DE UNA VARIABLE VACIA

Publicado por JOSE JEREMIAS CABALLERO (5779 intervenciones) el 27/12/2016 20:33:51
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
function  A  = mi_matriz(n)
if nargin==0
 disp('ERROR: No se ha introducido ningun valor de n');
 A=[];
 return
 end
 
%COMPROBAMOS SI LA VARIABLE "n" NO ES POSITIVA
if n<=0
    disp ('ERROR: El valor n introducido no es positivo');
    n=5;
end
 
%COMPROBAMOS SI LA VARIABLE "n" NO ES ENTERA APROXIMAN AL SIGUIENTE ENTERO
if mod(n,1)~=0 %Aqui pregunto si el nº no es entero
    n=floor(n); %Metemos la parte entera de n en n
    n=n+1; %Metemos en n el entero siguiente
    disp ('ERROR: El valor n introducido no es entero');
end
 
%CREACION DEL ALGORITMO
 
A=zeros(n); %Creacion matriz cuadrada de ceros de dimension n
 
for i=1:n
    for j=1:n
        if i==j
         A(i,j) = 1; %metemos un 1 en la diagonal
        end
    end
end


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
>> A  = mi_matriz
ERROR: No se ha introducido ningun valor de n
 
A =
 
     []
 
>> mi_matriz
ERROR: No se ha introducido ningun valor de n
 
ans =
 
     []
 
>> mi_matriz(-5)
ERROR: El valor n introducido no es positivo
 
ans =
 
     1     0     0     0     0
     0     1     0     0     0
     0     0     1     0     0
     0     0     0     1     0
     0     0     0     0     1
 
>> A=mi_matriz(-1)
ERROR: El valor n introducido no es positivo
 
A =
 
     1     0     0     0     0
     0     1     0     0     0
     0     0     1     0     0
     0     0     0     1     0
     0     0     0     0     1
 
>> A=mi_matriz(3)
 
A =
 
     1     0     0
     0     1     0
     0     0     1
 
>> A=mi_matriz(10)
 
A =
 
     1     0     0     0     0     0     0     0     0     0
     0     1     0     0     0     0     0     0     0     0
     0     0     1     0     0     0     0     0     0     0
     0     0     0     1     0     0     0     0     0     0
     0     0     0     0     1     0     0     0     0     0
     0     0     0     0     0     1     0     0     0     0
     0     0     0     0     0     0     1     0     0     0
     0     0     0     0     0     0     0     1     0     0
     0     0     0     0     0     0     0     0     1     0
     0     0     0     0     0     0     0     0     0     1
 
>> A=mi_matriz(10.8)
ERROR: El valor n introducido no es entero
 
A =
 
     1     0     0     0     0     0     0     0     0     0     0
     0     1     0     0     0     0     0     0     0     0     0
     0     0     1     0     0     0     0     0     0     0     0
     0     0     0     1     0     0     0     0     0     0     0
     0     0     0     0     1     0     0     0     0     0     0
     0     0     0     0     0     1     0     0     0     0     0
     0     0     0     0     0     0     1     0     0     0     0
     0     0     0     0     0     0     0     1     0     0     0
     0     0     0     0     0     0     0     0     1     0     0
     0     0     0     0     0     0     0     0     0     1     0
     0     0     0     0     0     0     0     0     0     0     1
 
>> A=mi_matriz(2.3)
ERROR: El valor n introducido no es entero
 
A =
 
     1     0     0
     0     1     0
     0     0     1


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programación 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
Imágen de perfil de Javier López

COMPROBACION DE UNA VARIABLE VACIA

Publicado por Javier López (16 intervenciones) el 28/12/2016 12:56:28
Muchas gracias por la pronta respuesta. Así da gusto.
Lo intentaré como me indican.
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 Javier López

COMPROBACION DE UNA VARIABLE VACIA

Publicado por Javier López (16 intervenciones) el 29/12/2016 14:28:39
Hola Jose.
Te confirmo que me ha funcionado tu solución.
Muchísimas 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